Как вывести на сайт ленту RSS.

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.

Итак задача: Вывести на сайте ленту RSS с какого - нибудь сайта.

Конечно существует огромное количество RSS агрегаторов, но хочется же сделать все своими руками , и мозгами на любимом PHP. Нам необходимо написать скрипт для чтения RSS каналов. На самом деле это очень просто. Итак приступим.

Если в общем то нам нужно сделать нечто подобное как в этой статье, но здесь все намного проще.

Сделаем на примере опять же этого сайта. У нас есть лента новостей http://softlet.kz/feed/rss/. RSS - представляет собой, как уже говорилось выше, структурированную XML. Мы сначала получим все данные в виде строки, потом распарсим эту строку в объект.

<?$file=file_get_contents("http://softlet.kz/feed/rss/");
$xml = simplexml_load_string($file);?>

Из кода выше понятно что все содержимое ссылки мы поместили в виде строки в переменную $file. После с помощью функции simplexml_load_string мы из строки сделали объект $xml. В принципе это и есть основное!! :)

Теперь стоит позаботиться только о выводе.

Все элементы (новости) у нас в виде массива в свойстве объекта $xml->channel->item.

Каждый элемент массива - является, в свою очередь, объектом со следующими свойствами

  • title - заголовок новости
  • link - ссылка на детальную информацию
  • pubDate - дата публикации
  • description - описание новости (тоже объект)

Вот пример кода получения новостей с выводом.

<?$file=file_get_contents("http://softlet.kz/feed/rss/");
$xml = simplexml_load_string($file);

print "<ul>";
foreach($xml->channel->item as $item){
print "<li>";
print "<a href='".$item->link."'>".$item->title."</a>";
print "</li>";
}
print "</ul>";
?>

Все просто. У данного метода есть недостаток. При каждом вызове вашей страницы скрипт будет обращаться на сервер RSS ленты, что замедляет загрузку страницы, а то и вовсе может зависнуть. В одной из следующих статей я опишу способ избежать этого.

Запись опубликована в рубрике Веб-программирование. Добавьте в закладки постоянную ссылку.

3 комментария: Как вывести на сайт ленту RSS.

  1. lifephysic говорит:

    Просто и работает, У меня конечно задача отлична от вывода на сайт. Но для меня пойдёт…

  2. Саша говорит:

    Скрипт хороший но одно но. У меня кодировка получается нетакая – ероглифы выводит. И я так понял выводит только заголовки новостей хотелось бы и короткое содиржание.

  3. Kamron говорит:

    Wait, I cannot ftahom it being so straightforward.