Парсинг RSS ленты на PHP
RSS — вид XML-формата, предназначенных для описания лент новостей, анонсов статей. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде. Для этого делают программы-агрегаторы.
Сказать по другому: RSS — это специфически структурированный XML документ. Если в RSS есть открывающий тег, то должен быть и закрывающий (например: <title>Заголовок</title>). Нам нужно получить информацию заключенную между тегами. Любая RSS лента имеет заголовок заключенный между тегами <title></title> и сам текст статьи заключенный между тегами < description></description>, именно нам они и нужны.
Простой пример RSS ленты:
<rss version="2.0">
<channel>
<title>LiveRSS</title>
<link>http://liverss.ru/</link>
<description></description>
<item>
<title>
</title>
<link>
</link>
<description>
</description>
<pubDate>
</pubDate>
</item>
</channel>
</rss>
В данном примере, будем рассматривать парсинг RSS ленты с помощью SimpleXML.
SimpleXML – это расширение для PHP5 устанавливаемое в него по умолчанию, представляет самый простой и элегантный способ обработки XML (а значит и RSS) файлов. Это и наиболее предпочтительный способ, но он стал доступным только в 5 версии PHP. Это, наверно, самой простой способ пропарсить XML.
Вот пример парсера RSS с использование SimpleXML:
$url = 'rss.xml'; //адрес RSS ленты
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
echo '<h1>'.$item->title.'</h1>'; //выводим на печать заголовок статьи
echo $item->description; //выводим на печать текст статьи
}
В переменную $url записываем адрес фида RSS. Весь полученный документ сохраняется в переменной $rss. Теперь остается обойти все нужные нам элементы ( в примере обход делается по chanel, а из него в item) и вывести их на экран.
Для большей практики, можно записывать полученную информацию сразу в БД. А при повторном проходе файла, сравнивая даты публикаций, записывать только то, чего у нас нет.
Вот такой несложный пример. Таким образом, зная структуру, можно парсить любой XML документ.
А какой библиотекой Вы парсите документы?
Дмитрий
10:25 15.10.2015Здравствуйте,скажите а как сделать чтоб заголовок был ссылкой на страницу?