MagpieRSS: uno dei primi parser PHP per feed

MagpieRSS è uno dei più apprezzati e completi parser per feed scritti in PHP.
Lo script è sviluppato come classe, sfruttando le funzionalità della programmazione ad oggetti offerte da PHP.

Allo stato attuale la classe è disponibile al download nella versione 0.71.1, contrariamente a quanto segnalato sul sito ufficiale.

Il parser è compatibile con tutte le versioni delle specifiche RSS, escluse le dimenticate 3.0, e con il formato Atom 0.3.
Al momento non è completo il supporto per Atom 1.0.

L'utilizzo della classe è molto semplice e, di base, non necessita più di due righe come da esempio.

require('rss_fetch.inc');
$rss = fetch_rss($url); 

E' sufficiente includere il file principale e richiamare il metodo fetch_rss passando come parametro l'URL.
Il risultato del metodo è un oggetto RSS contenente tutti i tag e le entry del feed, parsati e normalizzati secondo una struttura standard.

L'elenco degli elementi è inserito in un array, da scorrere con un semplice ciclo o utilizzare a piacimento.

Struttura di MagpieRSS

Una volta scaricato e compattato l'archivio tar.gz la struttura di Magpie si presenta come segue.

rss_cache.inc
Contiene il codice per gestire la memorizzazione in cache dei feed. Utilizzando la cache è possibile ridurre il numero delle chiamate al feed sorgente ottimizzando tempi e risorse.
rss_fetch.inc
Contiene le funzioni per caricare il feed e gestire la conversione dei contenuti in un oggetto RSS.
E' il file da includere per l'utilizzo del parser che gestisce il metodo fetch_url per l'intera esecuzione.
rss_parse.inc
Contiene il cuore della classe, ovvero il parser. Si occupa di leggere il feed, interpretarlo e normalizzarlo.
rss_utils.inc
Contiene funzioni accessorie per la classe.
/Extlib
Contiene la classe Snoopy di supporto per altre funzioni incluse nel codice principale.
/htdocs
Documentazione di supporto.
/scripts
Script e plugin per il funzionamento della classe.

Per installare ed utilizzare la classe è sufficiente copiare questi file, o eventualmente la cartella root che li contiene, nella cartella o in una sottodirectory del file che utilizzerò la classe.

Esempi d'utilizzo

Un esempio completo è disponibile nell'articolo Semplice parser in PHP