Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Глюк substr


Автор: motorway 11.7.2011, 21:17
На 5 PHP наблюдается странный глюк, когда пробую получить подстроку с помощью substr, предварительно найдя позицию последнего вхождения подстроки с помощью strripos.
Вот текст:
Код


<tr class="productListing-odd"><td class='productListing-data' align='left'><a href='http://www.svetnadom.ru/store/product_info.php?name=Бра__Metal_lux_OTELLO_111102.04&products_id=496'>Бра  Metal lux OTELLO 111102.04</a></td><td class='productListing-data' align='center'><a href='http://www.svetnadom.ru/store/product_info.php?name=Бра__Metal_lux_OTELLO_111102.04&products_id=496'>111102.04</a></td><td class='productListing-data' align='right'><a href='http://www.svetnadom.ru/store/product_info.php?name=Бра__Metal_lux_OTELLO_111102.04&products_id=496'>4.524


Код

$x=file_get_contents('1.txt');

$pos=strripos($x,"'>");
if ($pos!==false)
{
///echo $pos;
$n=$pos+2;
//echo $n;
$y=substr($x,$n);
echo $y;
};
echo $y." руб."."<BR>";



Вот код, который всё это делает.
Но результат 4.524 не получается, а получаем пустую строку.
В чем может быть проблема? Позиция искомой подстроки получается равной 555.

Автор: srt 11.7.2011, 21:36
4.524 руб. вывело
ток сначала двойные кавычки в строке на одинарные заменил <tr class="productListing-odd">, мож об них споткнулось?

Автор: motorway 11.7.2011, 22:22
Смысл был именно в оставлении этой же строки. Могло и об них, но почему? Если переменная берется из файла... Может, дело в памяти? При большой позиции по абс. значению что-то происходит...

Добавлено через 3 минуты и 22 секунды
Вообще уже решил заменить на explode и брать последний полученный элемент. А то в прошлый раз с этим strripos у меня тоже проблемы были

Автор: bars80080 11.7.2011, 23:10
а какая кодировка у текста, в котором ищется?

Автор: motorway 11.7.2011, 23:18
windows-1251

Автор: srt 12.7.2011, 05:30
Код

$x = file_get_contents('1.txt');
$x = addslashes($x);
...


Добавлено через 1 минуту и 59 секунд
потому что кавычки это элемент синтаксиса в php

Добавлено через 6 минут и 51 секунду
кстати bars80080 правильно заметил - кодировку нужно устанавливать скрипту обязательно, чтобы не расставлять себе невидимую ловушку :О)
например setlocale(LC_ALL, 'ru_RU.CP1251');

Автор: motorway 12.7.2011, 14:44
Странно. Я обычно занимался обработкой страниц, не особо обращая внимание есть ли там кавычки - по идее не должно зависеть от этого.

Автор: srt 12.7.2011, 15:10
таки вопрос решён?

Автор: motorway 12.7.2011, 16:14
Не знаю, у меня лично не получилось нормально с этим кодом. Почему из-за кавычек вдруг функция по-другому работать должна?

Добавлено через 1 минуту и 8 секунд
Саму подстроку нужную я получил еще вчера с помощью explode (решил по-другому сделать), но с помощью данного кода - нет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)