Чтение RSS-ленты в PHP
Термин RSS имеет много разных определений - он может быть переведен как Действительно Простая Синдикация, также он может быть переведен и по-другому, однако суть данной технологии от этого не изменится.
RSS – это передача и обновление новостей в автоматическом режиме.
Подавляющая часть новостных сайтов, блогов и т.д., публикует анонсы статей, событий, новостей в формате RSS. Он обеспечивает регулярное автоматическое обновление, так что Ваши посетители увидят самые последние и актуальные новости.
Формат RSS не предназначен для чтения человеком. Он представляет собой XML документ, специально разработанный для чтения машинами. Я уже писал про то, Как сделать RSS на сайте. А в этой статье я покажу, как читать RSS-ленту через PHP.
Но для начала, как вообще читается RSS-лента. Для чтения RSS используются специальные программы, называемые агрегаторами. Многие из них похожи на почтовые программы, но вместо входящих писем они отображают новости из различных источников (со всех новостных лент в которых вы зарегистрированы или на которые вы подписаны). Причем, как и в почте, непрочитанные новости отображаются жирным шрифтом.
RSS агрегаторы сильно облегчают слежение за новостями из огромного количества источников, доставляя все новости в одно место. Но принимая во внимание тот факт, что сегодня все больше распространяются смартфоны, то существуют специализированные сайты –Web-RSS агрегаторы. С их помощью можно следить за новостями с любого устройства, на котором есть браузер.
Все современные браузеры также имеют встроенную возможность чтения RSS-ленты, однако она ограниченна.
В конечном счете, некоторые сайты собирают, агрегируют новости из различных источников на один сайт. Таким образом, осуществляется “синдикация”.
После того как RSS сервис создан пора его размещать на хостинге. Фактически RSS-лента – это ссылка подобного вида – http:/mysite.ru/rss.php, которая возвращает контент в формате XML.
Сегодня используются различные версии RSS. Так, например, RSS 2.0 – это наиболее общеупотребительный формат. Он используется для новостных сайтов и блогов, а также для размещения подкастов.
Также существует новый формат, называемый Atom, который предлагает более стандартизированный подход в обновлении XML контента. Однако он крайне мало распространен за пределами блог-сообщества. Практически все движки блогов могут генерировать Atom-ленту на лету.
Для того, чтобы читать RSS-ленту нам необходимо найти ссылку на эту самую ленту. Для этого можно зайти на сайт http://news.yandex.ru/export.html. Там выбираете категорию, которая вам понравилась, и копируете ссылку, например такую – http://news.yandex.ru/gadgets.rss.
Далее необходимо прочитать содержимое файла gadgets.rss, для этого воспользуемся встроенной в PHP функцией file_get_contents. Код далее:
<?php
$url = “http://news.yandex.ru/gadgets.rss”;
$content = file_get_contents($url);
?>
Далее мы передаем содержимое переменной $content в конструктор класса SimpleXmlElement и получим объектное представление содержимого RSS-ленты в переменной $items.
<?php
$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-ленты будет следующая:
<?php
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 - небольшой вводный текст новости
Таким образом, сегодня мы с Вами научились разбирать RSS-ленту с помощью PHP.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.