SimplePie – импорт RSS легко!

SimplePie SimplePie - это удобный php-класс для импорта RSS. Поддерживает следующие версии каналов: RSS (0.90, 0.91, 0.92, 1.0, 2.0), Atom (0.3, 1.0). Это open-source по лицензии BSD, т.е. в отличие от GPL-лицензии вы можете внедрять SimplePie в свои коммерческие продукты и не задумываться об оплате.

Установка
Для работы SimplePie потребуется несколько библиотек: XML Parser, PCRE, Mbstring, CURL, Zlib. Разумеется вам нужно скачать класс SimplePie. Распакуйте архив и скопируйте файл с именем simplepie.inc в папку simplepie. Кроме отличной документации, с SimplePie поставляется также сценарий, который проверяет, поддерживает ли ваша сборка РНР эту библиотеку. Для проверки работоспособности SimplePie, скопируйте в папку simplepie файл sp_compatibility_test.php и загрузите этот файл в браузер.

Импорт RSS. Простой пример
Создайте в папке simplepie папку с именем cache. Эта папка будет использована для кэширования данных. Да, да, в нем есть встроенное кэширование. По умолчанию кэш хранится 60 минут. Вся библиотека SimplePie состоит из одного класса с названием SimplePie, и вы должны лишь создать объект этого класса, а затем использовать нужные методы. Создайте в папке simplepie новый файл с именем test.php и поместите в него следующий код:

<?php
// загрузка библиотеки
require_once $_SERVER['DOCUMENT_ROOT'].'/simplepie/simplepie.inc';
// создание и настройка объекта SimplePie
$feed = new SimplePie();
$feed->set_feed_url('http://ekimoff.ru/feed'); // путь к rss-каналу
$feed->set_cache_location('cache');
$feed->init();
$feed->handle_content_type();
if ($feed->data) {
    // вывод названия канала
    echo '<h1><a href="'.$feed->get_link().'">'.$feed->get_title() .'</a></h1>';
    // вывод не более 5 элементов канала
    for ($i=0; $i<5; $i++) {
        $item = $feed->get_item($i);
        // вывод ссылки и названия новости
        echo '<a href="'.$item->get_permalink().'">'.$item->get_title().'</a>';
        // вывод описания новости
        echo '<div>'.$item->get_description().'</div>';
    }
}
?>

Ну вот — читать данные из внешнего канала с помощью SimplePie оказалось не просто, а очень просто!

Теги: PHP, RSS, SimplePie, XML
#1

А как быть, когда при импорте фида не импортируются картинки? Например, лента http://k.img.com.ua/rss/ru/russia.xml, в которой картинки отображаются явно. А вот в ленте http://www.rbc.ua/include/dynamic/rus/top/politics_full.xml картинки не отражаются, т.к. урл картинки не входит в блок .

Как это можно решить при помощи SimplePie?

SeoEvgeny, 30.08.2009 - 16:11
#2

а как конвертировать кодировку в 1251? rss идет в утф...

Ваня, 1.07.2010 - 06:19
Оставить комментарий