Парсинг 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Здравствуйте,скажите а как сделать чтоб заголовок был ссылкой на страницу?