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
 
английский язык для начинающих
Ашманов Египет Москва РХТУ Россия США Снежинск Таиланд Тушино Урал Челябинская область Яндекс алкоголь английский язык баги база данных безопасность бизнес блоги взлом видео выставка выходные горные лыжи дайвинг дауншифтинг допинг идиотизм инвентарь интернет книги кэширование мозг море музей ноутбук образование оптимизация отдых отпуск пароль плагин пора сваливать программирование программисты путешествия работа работоспособность радиация реклама самогоноварение собеседование социальные сети спам стартап статистика страны тайм-менеджмент техника учеба фантастика фото фриланс хакер экология электронные деньги юмор Ajax CMS DbSimple DDOS email FireFox Google honda htaccess HTML javascript jQuery life md5 MySQL PHP SEO soft SQL vkontakte Web web 2.0 wordpress