Чтение RSS-рассылок

Задача
Необходимо получить RSS-рассылку и просмотреть ее содержание. Это позволит нам включить рассылку новостей с нескольких веб-сайтов в ваше приложение.

Решение
Используйте PEAR-класс XML_RSS. Приведем пример, который читает RSS-рассылку для списка почтовых адресов php.announce:

require 'XML/RSS.php';
$feed = 'http://news.php.net/group.php?group=php.announce&format=rss';
$rss =& new XML_RSS($feed);
$rss->parse();
print "\n";

Обсуждение
RSS, что означает RDF Site Summary, является простым в использовании форматом заголовков или синдикации статей, написанным на XML.1 Многие новостные веб-сайты, такие как Slashdot и Meerkat издательства O’Reilly, предоставляют RSS-рассылки, которые обновляются при каждой публикации нового материала. Популярные сетевые издания также включают RSS, а RSS-рассылка в вашем собственном онлайн-дневнике является уже стандартной функциональностью.

Веб-сайт PHP также публикует RSS-рассылки для большинства серверов почтовых рассылок PHP.

Получать и анализировать RSS-рассылку просто:

$feed = 'http://news.php.net/group.php?group=php.announce&format=rss';
$rss =& new XML_RSS($feed);
$rss->parse();

Этот пример присваивает переменной $rss новый объект XML_RSS и передает значение переменной feed в RSS-рассылку новостей php.announce.

Затем рассылка анализируется с помощью функции XML_RSS::parse() и сохраняется в переменной $rss.Впоследствии к элементам RSS обращаются как к ассоциативному массиву, полученному с помощью функции XML_RSS:getItems():

print "\n";

Этот цикл foreach создает неупорядоченный список элементов ссылок на статьи так, как показано на рис. 12.1. Помимо обязательных полей title и link, элемент может иметь и необязательное поле description, в котором содержится краткое описание статьи.
Каждый канал также содержит вход с общей информацией о рассылке. Для извлечения данных используем функцию XML_RSS::getChannelInfo():

$feed = 'http://news.php.net/group.php?group=php.announce&format=rss';
$rss =& new XML_RSS($feed);
$rss->parse();
print "
    \n";
    foreach ($rss->getChannelInfo() as $key => $value) {
    print "
  • $key: $value
  • \n";
    }
    print "
\n";

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Анализ XML с помощью DOM
Анализ XML с помощью SAX
Генерация XML вручную
Генерация XML с применением DOM
Обмен данными с помощью WDDX

Вернуться в раздел: PHP / 12. XML