Warning: Trying to access array offset on value of type null in /var/www/u1194556/data/www/tjan.ru/libraries/src/Language/Language.php on line 1019
Warning: Trying to access array offset on value of type null in /var/www/u1194556/data/www/tjan.ru/libraries/src/Language/Language.php on line 1019
Warning: Trying to access array offset on value of type null in /var/www/u1194556/data/www/tjan.ru/libraries/src/Language/Language.php on line 1019
Чтение RSS-ленты в PHP
- Details
- Category: Админ
- Hits: 812
RSS (англ. Rich Site Summary — обогащённая сводка сайта) — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами или онлайн-сервисами.
Читаем RSS-ленту
Для того, чтобы читать RSS-ленту нам необходимо найти ссылку на эту самую ленту. Например можно зайти на сайт news.yandex.ru. Там выбираем категорию, которая вам понравилась, и копируете ссылку, например такую – news.yandex.ru/gadgets.rss.
Далее необходимо прочитать содержимое файла gadgets.rss, для этого воспользуемся встроенной в PHP функцией file_get_contents
$url = "http://news.yandex.ru/gadgets.rss"; $content = file_get_contents($url);
Далее мы передаем содержимое переменной $content
в конструктор класса SimpleXmlElement
и получим объектное представление содержимого RSS-ленты в переменной $items
.
$items = new SimpleXmlElement($content); print "<ul>"; foreach($items -> channel -> item as $item) { print "<li><a href = '{$item->link}' title = '$item->title'>" . < $item->title . "</a> - " . $item -> description . "</li>"; < } print "</ul>";
Итоговая функция будет примерно следующая:
function getFeeds($url) { $url = "http://news.yandex.ru/gadgets.rss"; $content = file_get_contents($url); $items = new SimpleXmlElement($content); print "<ul>"; foreach($items -> channel -> item as $item) { print "<li><a href = '{$item->link}' title = '$item->title'>" . $item->title . "</a> - " . $item -> description . "</li>"; } print "</ul>"; }
По стандарту, RSS-лента всегда следует похожей базовой структуре: каждая лента включает в себя корневой тег channel
. Затем каждый элемент в ленте представлен тегом channel
, у которого есть свои подэлементы:
link
- ссылка на новостьtitle
- отображаемый текст ссылкиdescription
- небольшой вводный текст новости