Главная / Zend Manual Core
Zend_Feed

Введение

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

  1. // Извлечение последних новостей Slashdot
  2. try {
  3.     $slashdotRss =
  4.         Zend_Feed::import('http://rss.slashdot.org/Slashdot/slashdot');
  5. } catch (Zend_Feed_Exception $e) {
  6.     // неудача при импортировании ленты
  7.     echo "Exception caught importing feed: {$e->getMessage()}\n";
  8.     exit;
  9. }
  10.  
  11. // Инициализация массива данных каналов
  12. $channel = array(
  13.     'title'       => $slashdotRss->title(),
  14.     'link'        => $slashdotRss->link(),
  15.     'description' => $slashdotRss->description(),
  16.     'items'       => array()
  17.     );
  18.  
  19. // Обход каналов и сохранение данных
  20. foreach ($slashdotRss as $item) {
  21.     $channel['items'][] = array(
  22.         'title'       => $item->title(),
  23.         'link'        => $item->link(),
  24.         'description' => $item->description()
  25.         );
  26. }

Zend_Feed