Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    32.4. Работа с лентой RSS

    Чтение ленты такое же простое, как создание объекта Zend_Feed_Rss с URI ленты:

    $channel = new Zend_Feed_Rss('http://rss.example.com/channelName');

    Если при извлечении ленты произошла ошибка, то будет сгенерировано исключение Zend_Feed_Exception.

    Создав объект ленты, вы можете получить доступ к любым стандартным свойствам канала RSS (channel) непосредственно в объекте:

    echo $channel->title();

    Обратите внимание на синтаксис функции. Zend_Feed использует соглашение об интерпретации свойств как объекта XML, если они запрошены в синтаксисе получения переменной ($obj->property и как строки, если они запрошены в синтаксисе метода ($obj->property()). Это позволяет получить доступ к полному тексту любого отдельного узла, что одновременно дает полный доступ и ко всем дочерним элементам.

    Если свойства канала имеют атрибуты, то к ним можно получить доступ, используя синтаксис массива PHP:

    echo $channel->category['domain'];

    Поскольку атрибуты не могут иметь дочерние элементы, то нет необходимости в синтаксисе метода для получения значений атрибутов.

    Скорее всего, вам потребуется произвести обход ленты и выполнить какие-либо операции с ее сообщениями. Zend_Feed_Abstract реализует интерфейс PHP Iterator, поэтому вывод заголовков всех статей в канале будет выглядеть следующим образом:

    foreach ($channel as $item) {
        echo 
    $item->title() . "\n";
    }

    На тот случай, если вы не знакомы с RSS, здесь приведены стандартные элементы, которые должны присутствовать в канале (элемент <channel>) и отдельных сообщениях RSS (элемент <item>).

    Обязательные элементы канала:

    • title - имя канала

    • link - URL веб-сайта, соответствующего каналу

    • description - одно или несколько предложений, составляющих описание канала

    Обычно используемые необязательные элементы канала:

    • pubDate - дата публикации канала в формате RFC 822

    • language - язык, на котором написано содержимое канала

    • category - одна или несколько (задается несколькими тегами) категорий, к которым принадлежит канал

    Элементы <item> не имеют обязательных вложенных элементов. Тем не менее, должны быть представлены заголовок <title> или описание <description>.

    Обычно используемые элементы сообщения:

    • title - заголовок сообщения

    • link - URL сообщения

    • description - краткое описание

    • author - e-mail автора

    • category - одна или несколько категорий, к которым принадлежит сообщение

    • comments - URL комментариев к данному сообщению

    • pubDate - дата публикации в формате RFC 822

    В своем коде вы можете проверить, имеет ли элемент непустое значение, следующим образом:

    if ($item->propname()) {
        
    // ... обработка
    }

    Если вместо этого использовать $item->propname, то всегда будете получать объект. Пустой объект расценивается как TRUE, поэтому такая проверка будет некорректной.

    Для получения более подробной информации читайте официальное описание спецификации RSS 2.0: http://blogs.law.harvard.edu/tech/rss

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...