adsPlace_1

Войти или Зарегистрироваться

adsPlace_3

Парсинг RSS ленты на PHP

Парсинг 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 документ.

А какой библиотекой Вы парсите документы?

Последние из рубрики

Комментарии(4)

    1. Аватар пользователя Дмитрий

      Дмитрий

      10:25 15.10.2015

      Здравствуйте,скажите а как сделать чтоб заголовок был ссылкой на страницу?

      ответить
    2. Аватар пользователя Andrey

      Andrey

      09:27 25.12.2017

      какой же ты даун чувак… нахуй нам твой файл нужен? Еще и копирует дерьмотексты из инета…. Как парсить новостную ленту по ссылке то?

      ответить
      • Аватар пользователя Максим Никифоров

        Andrey,
        Если ты даже не удосужился почитать что такое rss лента, как она выглядит и структуру имеет, а также не посмотрев описания фукций PHP которые указаны в посте — тогда тебе это просто не нужно) Научись сначала читать документацию и примеры к ним, а потом уже задавай вопросы

        ответить
    3. Аватар пользователя В.

      В.

      06:49 12.02.2018

      А если xml version 1.0. там другая структура как парсить?
      пример:

      бла бла
      бла бла бла/subtitle>

      2018-02-12T01:03:52+03:00

      ответить

    Оставь свой отзыв

    Для вставки кода используйте кнопки php, html, javascript, css, sql

    * - поля обязательны к заполнению