Lettura di un feed RSS
Leggere un feed RSS è tanto semplice quanto creare un'istanza di un nuovo oggetto Zend_Feed_Rss con l'URL del feed:
Se qualche errore si verifica nel recuperare il feed, verrà generata un'eccezione Zend_Feed_Exception.
Una volta a disposizione un oggetto feed si ha accesso ad ognuna delle proprietà standard di un canale RSS (channel), direttamente dall'oggetto:
title();]]>
Si noti la sintassi della funzione.
Zend_Feed utilizza una convenzione per trattare le proprietà come oggetti XML se sono richieste con la sintassi "getter" di una variabile ($obj->property) e come stringhe se sono richieste con la sintassi tipica di un metodo ($obj->property()).
Questo consente l'accesso al testo completo di ogni singolo nodo così come consente pieno accesso a tutti gli elementi figli del nodo stesso.
Se le proprietà di un canale contengono attributi è possibile accedervi utilizzando la sintassi tipica di un array in PHP:
category['domain'];]]>
Poiché gli attributi XML non possono contenere figli, la sintassi caratteristica di un metodo non è necessaria per accedere ai valori degli attributi.
Più comunemente si desidera scorrere il feed ed eseguire qualche azione con i suoi elementi.
Zend_Feed_Abstract implementa l'interfaccia PHP Iterator, dunque stampare tutti i titoli degli articoli consiste esclusivamente in:
title() . "\n";
}]]>
Se non si ha familiarità con un feed RSS, ecco gli elementi standard che ci si può aspettare essere disponibili in un canale RSS o un singolo elemento RSS (entry).
Tag obbligatori del canale (channel):
title - Il nome del canale
link - L'URL del sito web corrispondente al canale
description - Una o alcune frasi descrittive del canale
Tipici tag opzionali del canale:
pubDate - La data di pubblicazione del contenuto, nel formato RFC 822
language - La lingua nella quale è scritto il canale
category - Una o più categorie (specificate da più tag) alle quali appartiene il canale
Gli elementi (<item>) di un RSS non contengono particolari tag obbligatori.
Tuttavia, almeno uno tra i tag title o description deve essere presente.
Tipici tag di un elemento:
title - Il titolo dell'elemento
link - L'URL dell'elemento
description - Un riassunto dell'elemento
author - L'indirizzo email dell'autore
category - Una o più categorie alle quali appartiene l'elemento
comments - L'URL dei commenti riguardanti questo elemento
pubDate - La data di pubblicazione dell'elemento, nel formato RFC 822
E' possibile verificare la presenza di un elemento all'interno del codice utilizzando:
propname()) {
// ... proceed.
}]]>
Se in alternativa si utilizza $item->propname, verrà sempre restituito un oggetto vuoto valutato come TRUE, dunque il controllo non sarà eseguito correttamente.
Per ulteriori informazioni, le specifiche ufficiali del formato RSS 2.0 sono disponibili all'indirizzo:
http://blogs.law.harvard.edu/tech/rss