Парсинг RSS на PHP. Простой пример
Рубрика: Новости -> Скрипты -> php
Понедельник, 28 сентября 2009 г.
Просмотров: 6969
Подписаться на комментарии по RSS
Понедельник, 28 сентября 2009 г.
Просмотров: 6969
Подписаться на комментарии по RSS
В интернете много спрашивали про парсинг RSS на PHP. Так как этот вопрос
интересует многих, то я его решил немного изучить.
Вы все знаете про Яндекс-блоги. И знаете, что там можно подписаться на RSS
по любому запросу. Причем синтаксис
запросов (такой же, как к самому
Яндексу) предоставляет достаточно широкие возможности. Можно следить за
всем, что происходит в блогосфере.
Составляем запрос и визуально убеждаемся, что в результате запроса получаем валидный XML.
Внутри скрипта пишем:
<? function utf8_convert($str, $type) { static $conv = ''; if (!is_array($conv)) { $conv = array(); for ($x=128; $x <= 143; $x++) { $conv['utf'][] = chr(209) . chr($x); $conv['win'][] = chr($x + 112); } for ($x=144; $x<= 191; $x++) { $conv['utf'][] = chr(208) . chr($x); $conv['win'][] = chr($x + 48); } $conv['utf'][] = chr(208) . chr(129); $conv['win'][] = chr(168); $conv['utf'][] = chr(209) . chr(145); $conv['win'][] = chr(184); } if ($type == 'w') { return str_replace($conv['utf'], $conv['win'], $str); } elseif ($type == 'u') { return str_replace($conv['win'], $conv['utf'], $str); } else { return $str; } } echo '<h1><font color="red">Конфузы блогосферы</font></h1>'; $url = 'http://blogs.yandex.ru/search.rss?text="наложил в штаны"'; //адрес RSS ленты $rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект //цикл для обхода всей RSS ленты foreach ($rss->channel->item as $item) { echo '<a href="'.$item->link.'">'; echo '<h2>'.utf8_convert($item->title,"w").'</h2>'; //выводим на печать заголовок статьи echo '</a>'; echo utf8_convert($item->description,"w"); //выводим на печать текст статьи } ?>
Вот и все, любуемся результатом.
Если
вы хотите парсить "в накопительном режиме", то у записей достаточно
обрабатывать и сравнивать дату публикации pubDate. В зависимости от
этой даты — записывать или не записывать в базу.
источник
Оставьте комментарий!