Введение в 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. Zend_Feed

    Содержание

    32.1. Введение
    32.2. Импортирование лент с помощью Zend_Feed
    32.2.1. Создание собственных лент
    32.2.1.1. Импортирование массива
    32.2.1.2. Импортирование из специального источника данных
    32.2.1.3. Дапм содержимого ленты
    32.3. Получение лент из веб-страниц
    32.4. Работа с лентой RSS
    32.5. Работа с лентой Atom
    32.6. Работа с отдельным сообщением ленты Atom
    32.7. Изменение структуры лент и их сообщений
    32.8. Создание собственных классов лент и записей
    32.9. Zend_Feed_Reader
    32.9.1. Introduction
    32.9.2. Importing Feeds
    32.9.3. Retrieving Underlying Feed and Entry Sources
    32.9.4. Cache Support and Intelligent Requests
    32.9.4.1. Adding Cache Support to Zend_Feed_Reader
    32.9.4.2. HTTP Conditional GET Support
    32.9.5. Locating Feed URIs from Websites
    32.9.6. Attribute Collections
    32.9.7. Retrieving Feed Information
    32.9.8. Retrieving Entry/Item Information
    32.9.9. Extending Feed and Entry APIs
    32.9.9.1. Writing Zend_Feed_Reader Extensions
    32.10. Zend_Feed_Writer
    32.10.1. Introduction
    32.10.2. Architecture
    32.10.3. Getting Started
    32.10.4. Setting Feed Data Points
    32.10.5. Setting Entry Data Points
    32.11. Zend_Feed_Pubsubhubbub
    32.11.1. What is Pubsubhubbub?
    32.11.2. Architecture
    32.11.3. Zend_Feed_Pubsubhubbub_Publisher
    32.11.4. Zend_Feed_Pubsubhubbub_Subscriber
    32.11.4.1. Subscribing and Unsubscribing
    32.11.4.2. Handling Subscriber Callbacks
    32.11.4.3. Setting Up And Using A Callback URL Route

    32.1. Введение

    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, который может быть использован для распечатки, сохранения в БД и т.д.

    [Замечание] Внимание

    Многие ленты RSS различаются по набору доступных свойств каналов и сообщений. Спецификация RSS предоставляет множество необязательных свойств, поэтому имейте это в виду, когда пишете код для работы с данными RSS.

    Пример 32.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";
        exit;
    }

    // Инициализация массива данных каналов
    $channel = array(
        
    'title'       => $slashdotRss->title(),
        
    'link'        => $slashdotRss->link(),
        
    'description' => $slashdotRss->description(),
        
    'items'       => array()
        );

    // Обход каналов и сохранение данных
    foreach ($slashdotRss as $item) {
        
    $channel['items'][] = array(
            
    'title'       => $item->title(),
            
    'link'        => $item->link(),
            
    'description' => $item->description()
            );
    }

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...