| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <sect1 id="zend.feed.consuming-rss">
- <title>Odbieranie danych z kanału informacyjnego RSS</title>
- <para>
- Odczytywanie kanału RSS jest tak proste jak utworzenie obiektu <code>Zend_Feed_Rss</code> z adresem
- URL kanału przekazanym do konstruktora:
- </para>
- <programlisting role="php"><![CDATA[
- $channel = new Zend_Feed_Rss('http://rss.example.com/channelName');
- ]]>
- </programlisting>
- <para>
- Jeśli wystąpi jakiś błąd podczas obróbki danych pochodzących z kanału,
- zostanie wyrzucony wyjątek <code>Zend_Feed_Exception</code>.
- </para>
- <para>
- 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:
- </para>
- <programlisting role="php"><![CDATA[
- echo $channel->title();
- ]]>
- </programlisting>
- <para>
- Zwróć uwagę na składnie funkcji. <code>Zend_Feed</code> 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" (<code>$obj->property</code>) i jako łańcuch
- znaków gdy próbujemy uzyskać dostęp jak do metody (<code>$obj->property()</code>).
- To pozwala na pełny dostęp do danych tekstowych przy jednoczesnym dostępie
- do wszystkich niższych składników.
- </para>
- <para>
- Jeśli właściwości kanału mają atrybuty, są one dostępne przy użyciu składni
- tablic PHP:
- </para>
- <programlisting role="php"><![CDATA[
- echo $channel->category['domain'];
- ]]>
- </programlisting>
- <para>
- Since XML attributes cannot have children, method syntax is not necessary for accessing attribute
- values.
- </para>
- <para>
- Najczęściej będziesz chciał przejść pętlą po danych kanału i zrobić coś
- z jego wpisami. Klasa <code>Zend_Feed_Abstract</code> implementuje wbudowany
- w PHP interfejs <code>Iterator</code>, więc wyświetlenie wszystkich tytułów
- artykułów z kanału jest bardzo proste:
- </para>
- <programlisting role="php"><![CDATA[
- foreach ($channel as $item) {
- echo $item->title() . "\n";
- }
- ]]>
- </programlisting>
- <para>
- 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).
- </para>
- <para>
- Wymagane składniki kanału:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para><code>title</code> - Nazwa kanału</para>
- </listitem>
- <listitem>
- <para><code>link</code> - Adres URL strony internetowej odpowiadającej kanałowi</para>
- </listitem>
- <listitem>
- <para><code>description</code> - Opis kanału</para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Opcjonalne składniki kanału:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para><code>pubDate</code> - Data publikacji zawartości, format RFC 822 format</para>
- </listitem>
- <listitem>
- <para><code>language</code> - Język kanału</para>
- </listitem>
- <listitem>
- <para><code>category</code> - Jedna lub więcej kategorii do których należy kanał</para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Elementy RSS <code><item></code> nie mają wymaganych składników,
- jednak albo składnik <code>title</code> albo <code>description</code> musi
- istnieć w elemencie.
- </para>
- <para>
- Składniki elementu kanału:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para><code>title</code> - Tytuł elementu</para>
- </listitem>
- <listitem>
- <para><code>link</code> - Adres URL elementu</para>
- </listitem>
- <listitem>
- <para><code>description</code> - Opis elementu</para>
- </listitem>
- <listitem>
- <para><code>author</code> - Adres email autora elementu</para>
- </listitem>
- <listitem>
- <para><code>category</code> - Jedna lub więcej kategorii do których należy element</para>
- </listitem>
- <listitem>
- <para><code>comments</code> - Adres URL komentarzy do tego elementu</para>
- </listitem>
- <listitem>
- <para><code>pubDate</code> - Data publikacji elementu, w formacie RFC 822</para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- W twoim kodzie zawsze możesz sprawdzić czy element nie jest pusty za pomocą:
- </para>
- <programlisting role="php"><![CDATA[
- if ($item->propname()) {
- // ... kontynuuj.
- }
- ]]>
- </programlisting>
- <para>
- Jeśli zamiast tego użyjesz <code>$item->propname</code>, zawsze dostaniesz
- pusty obiekt który zostanie skonwertowany do wartości <code>TRUE</code>,
- więc test zawiedzie.
- </para>
- <para>
- Więcej informacji dostępnych jest w oficjalnej specyfikacji RSS 2.0:
- <ulink url="http://blogs.law.harvard.edu/tech/rss">http://blogs.law.harvard.edu/tech/rss</ulink>
- </para>
- </sect1>
|