PHP

Чтение 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 "<ul>\n";
foreach ($rss->getItems() as $item) {
print '<li>' . $item['title'] . "</li>\n";
}
print "</ul>\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 "<ul>\n";
foreach ($rss->getItems() as $item) {
print '<li>' . $item['title'] . "</li>\n";
}
print "</ul>\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 "<ul>\n";
foreach ($rss->getChannelInfo() as $key => $value) {
print "<li>$key: $value</li>\n";
}
print "</ul>\n";
Теги:
xml
Добавлено: 22 Июля 2018 13:45:03 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...