Введение
Zend_Feed
предназначен для работы с
лентами RSS и Atom. Он предоставляет естетственный синтаксис
(natural syntax) для доступа к элементам лент, атрибутам лент и
их сообщений, полностью поддерживает изменение структуры лент и
публикаций с использованием того же синтаксиса и преобразует
результаты изменений обратно в XML. В будущем эта
поддержка изменений может обеспечить добавление поддержки Atom
Publishing Protocol.
Программно Zend_Feed
состоит из базового класса
Zend_Feed
, абстрактных базовых классов
Zend_Feed_Abstract
и Zend_Feed_Entry_Abstract
для представления лент и
их сообщений, реализаций лент и сообщений применительно для RSS и Atom,
а также "помощников" для обеспечения работы естетственного
синтаксиса.
В примере ниже мы демонстрируем простое получение ленты RSS и
сохранение нужных данных из ленты в массив PHP, который
может быть использован для распечатки, сохранения в БД и т.д.
Note: Внимание
Многие ленты RSS различаются по набору доступных свойств каналов и
сообщений. Спецификация RSS предоставляет множество необязательных
свойств, поэтому имейте это в виду, когда пишете код для работы с
данными RSS.
Example #1 Использование Zend_Feed в работе с данными ленты RSS
// Извлечение последних новостей Slashdot
try {
$slashdotRss =
Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
} catch (Zend_Feed_Exception $e) {
// неудача при импортировании ленты
echo "Exception caught importing feed: {$e->getMessage()}\n";
}
// Инициализация массива данных каналов
'title' => $slashdotRss->title(),
'link' => $slashdotRss->link(),
'description' => $slashdotRss->description(),
);
// Обход каналов и сохранение данных
foreach ($slashdotRss as $item) {
$channel['items'][] =
array(
'title' => $item->title(),
'link' => $item->link(),
'description' => $item->description()
);
}