[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Один strpos ищет, а второй не хочет
Porvoocio
Всем привет!
Очень надеюсь на вашу помощь.
Есть RSS парсер:
<?
$url = 'http://feeds.feedburner.com/cosmo/fashion?format=xml'; //адрес RSS ленты

$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект

//цикл для обхода всей RSS ленты

foreach ($rss->channel->item as $item) {
$descr = strval($item->description);
$posimg = strpos($descr, '200" />');
$posdescr = strpos($descr, '<p>');
echo $posdescr;
echo '<br>';
echo $posimg; // вот тут трабл
$descr = substr ($descr, 0, $posdescr);
echo $descr;
}
?>


При обходе, переменная $posdescr всегда принимает верное значение, а $posimg как принял значение при первой итерации, так на нем и остался.

XML исходник в переменной $url в начале. Выкладывать его код сюда не стал, проще наверно в ручную посмотреть.

Чего хочу добиться - вывод текста из тега <desсriрtion> в xml файле, который начинается после закрывающего img тега и кончается перед рекламой.

Заранее спасибо!



Спустя 3 минуты, 43 секунды (17.03.2012 - 17:12) GET написал(а):
А кодировка не UTF-8? Тогда надо mb_strpos применять.

Спустя 1 минута, 28 секунд (17.03.2012 - 17:14) Visman написал(а):
Все отлично работает
user posted image

Спустя 38 секунд (17.03.2012 - 17:14) Porvoocio написал(а):
Кодировка UTF-8, да.
Попробовал с mb_, результат тот же.

Спустя 1 минута, 15 секунд (17.03.2012 - 17:15) Porvoocio написал(а):
Visman, нет.
На твоем скриншоте, так же как и у меня, в начале строки везде "131", а тег img закрывается каждый раз на разных позициях.

Спустя 6 минут, 38 секунд (17.03.2012 - 17:22) Porvoocio написал(а):
Ой нет..это я 2 часа не туда пялился...
УРЛы же картинок и правда фиксированную длину имеют..

Спустя 2 минуты, 16 секунд (17.03.2012 - 17:24) Porvoocio написал(а):
Если у меня все верно было, тогда можешь помочь объяснить, из-за чего скрипт обрывается в этом варианте?

<?
$url = 'http://feeds.feedburner.com/cosmo/fashion?format=xml'; //адрес RSS ленты

$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект

//цикл для обхода всей RSS ленты

foreach ($rss->channel->item as $item) {
echo '<a href='.$item->link.'>'.$item->title.'</a>'; //выводим на печать заголовок статьи
$descr = strval($item->description); // делаем строкой description
$posimg = mb_strpos($descr, '200" />');
$posdescr = mb_strpos($descr, '<p>'); // ищем позиции, где начинается реклама
$posimg = $posimg+10;
$descr = substr ($descr, $posimg, $posdescr); // приводим текст с 0 и до рекламы
echo $descr;
echo $item->enclosure[url];
}
?>

Спустя 2 минуты, 25 секунд (17.03.2012 - 17:27) Visman написал(а):
Цитата (Porvoocio @ 17.03.2012 - 22:15)
На твоем скриншоте, так же как и у меня, в начале строки везде "131"

Правильно. Ты каждый раз обрезаешь строку, а все тэги картинок имеют одинаковую длину. Картинка каждый раз разная, но длина ее тэга от начала обрезанной строки одна и та же biggrin.gif

Спустя 14 минут, 25 секунд (17.03.2012 - 17:41) Porvoocio написал(а):
Visman, да, я уже огорчился, что столько времени в пустую убил..надо было перекурить.

Можешь помочь с вопросом, который я до этого изложил?
Где и как правильно вставить закрывающий тег, как я понял.

Спустя 10 минут, 2 секунды (17.03.2012 - 17:51) Visman написал(а):
Цитата (Porvoocio @ 17.03.2012 - 22:41)
Можешь помочь с вопросом, который я до этого изложил?
Где и как правильно вставить закрывающий тег, как я понял.

Я не понял вопроса.

Спустя 2 часа, 35 минут, 40 секунд (17.03.2012 - 20:27) twin написал(а):
Кодировку для mb нужно указывать явно.

Спустя 53 минуты, 21 секунда (17.03.2012 - 21:20) inpost написал(а):
php_value mbstring.internal_encoding UTF-8

в htaccess
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.