Wprowadzenie do Zend Framework

     Nauka Zend Framework

    appendix

     Przewodnik po Zend Framework


  • 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
  • Translation 21.3% Update 2011-11-16 - Revision 24356 - Version ZF 1.11.x

    30.4. Odbieranie danych z kanału informacyjnego RSS

    Odczytywanie kanału RSS jest tak proste jak utworzenie obiektu Zend_Feed_Rss z adresem URL kanału przekazanym do konstruktora:

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

    Jeśli wystąpi jakiś błąd podczas obróbki danych pochodzących z kanału, zostanie wyrzucony wyjątek Zend_Feed_Exception.

    Kiedy już masz obiekt kanału informacyjnego, możesz łatwo uzyskać dostęp do standardowych właściwości kanału RSS bezpośrednio na obiekcie:

    echo $channel->title();

    Zwróć uwagę na składnie funkcji. Zend_Feed używa konwencji traktującej właściwości jak obiekt XML gdy próbujemy uzyskać do nich dostęp za pomocą składni "getter" ($obj->property) i jako łańcuch znaków gdy próbujemy uzyskać dostęp jak do metody ($obj->property()). To pozwala na pełny dostęp do danych tekstowych przy jednoczesnym dostępie do wszystkich niższych składników.

    Jeśli właściwości kanału mają atrybuty, są one dostępne przy użyciu składni tablic PHP:

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

    Since XML attributes cannot have children, method syntax is not necessary for accessing attribute values.

    Najczęściej będziesz chciał przejść pętlą po danych kanału i zrobić coś z jego wpisami. Klasa Zend_Feed_Abstract implementuje wbudowany w PHP interfejs Iterator, więc wyświetlenie wszystkich tytułów artykułów z kanału jest bardzo proste:

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

    Jeśli nie jesteś obeznany z RSS, poniżej znajdziesz opis podstawowych składników, które możesz znaleść w kanale RSS i w jego indywidualnych elementach (wpisach).

    Wymagane składniki kanału:

    • title - Nazwa kanału

    • link - Adres URL strony internetowej odpowiadającej kanałowi

    • description - Opis kanału

    Opcjonalne składniki kanału:

    • pubDate - Data publikacji zawartości, format RFC 822 format

    • language - Język kanału

    • category - Jedna lub więcej kategorii do których należy kanał

    Elementy RSS <item> nie mają wymaganych składników, jednak albo składnik title albo description musi istnieć w elemencie.

    Składniki elementu kanału:

    • title - Tytuł elementu

    • link - Adres URL elementu

    • description - Opis elementu

    • author - Adres email autora elementu

    • category - Jedna lub więcej kategorii do których należy element

    • comments - Adres URL komentarzy do tego elementu

    • pubDate - Data publikacji elementu, w formacie RFC 822

    W twoim kodzie zawsze możesz sprawdzić czy element nie jest pusty za pomocą:

    if ($item->propname()) {
        
    // ... kontynuuj.
    }

    Jeśli zamiast tego użyjesz $item->propname, zawsze dostaniesz pusty obiekt który zostanie skonwertowany do wartości TRUE, więc test zawiedzie.

    Więcej informacji dostępnych jest w oficjalnej specyfikacji RSS 2.0: http://blogs.law.harvard.edu/tech/rss

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...