rss парсер на php
Привет тем, кому не без различна судьба веб-программирования.
В сегодняшней заметки мы поговорим с вами о создании небольшого парсера на PHP. Что парсить-то будем, спросите вы. Отвечу сразу, что парсить будем rss-ленту, ставшую в последнее время так популярной на примере Цитатника Рунета bash.org.ru.
Если вы посмотрите на исходный код после того, как проследуете по адресу bash.org.ru/rss, то увидите там обычный текст, который не очень сложно структурирован. Это и есть обычный XML, который и будем разбирать на составляющие. Не буду томить, сразу приведу код на PHP.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$rss_url = 'http://bash.org.ru/rss';
$rss = simplexml_load_file($rss_url);
foreach ($rss->channel->item as $item) {
    $title = $item->title;
    $description = $item->description;
    $link = $item->link;
    $out = "<h1>" . $title . "</h1>";
    $out .= "<p>" . $description . "</p>";
    $out .= "<a href='" . $link . "'>Постоянная ссылка</a>";
    echo $out;
}
?>

Во второй строке скрипта мы загружаем rss, используя расширение PHP для работы с XML SimpleXML.
Дальше нам предстоит пройтись по всему дереву, выделяя нужные элементы.
Корневым элементом в данном случае является

1
<channel>

Он состоит из item’ов. Которые мы и получаем в цикле. И заносим нужные нам данные в переменные, чтобы сформировать красивый вывод.
Так в переменной $title будет храниться заголовок каждого item’а. В $description – соответственно описание или сама цитата в данном случае.
Теперь осталось собрать вывод и вывести цитату.
Все очень просто.