PHPBlog.it

Leggere RSS per proporre contenuti esterni

rssLa gran parte (se non la totalità) dei blog e dei siti web oramai dà la possibilità di seguire l’aggiornamento dei contenuti, oltre che con la normale navigazione, sfruttando i feed RSS nell’aggregatore che più ci piace. RSS (acronimo di RDF Site Summary ed anche di Really Simple Syndication) è uno dei più popolari formati per la distribuzione di contenuti Web è basato su XML, da cui ha ereditato la semplicità, l’estensibilità e la flessibilità.

Come già detto la fruizione di questi feed RSS è davvero semplice utilizzando delle applicazioni o dei servizi che svolgono il compito di aggregare le informazioni provenienti da più fonti, ma come fare ad utilizzare i dati contenuti nell’xml per proporli per esempio su una pagina web? Vediamo come fare con PHP e SimpleXML.

Innanzitutto bisogna avere un link ad un feed RSS, prendiamo per esempio quello di questo blog e lo assegnamo ad una variabile:

$request = 'http://feeds.feedburner.com/php5blogit/';

a questo punto non resta che recuperare i dati contenuti nel feed. Le strade percorribili sarebbero 2: utilizzare la funzione file_get_contents oppure sfruttare le funzioni curl. Il risultato finale utilizzando l’una o l’altra strada sarebbe lo stesso, il problema della scelta dipende principalmente dalle impostazioni dell’hosting su cui lavoriamo: capita spesso di trovare servizi che per sicurezza non abilitino i wrapper URL per fopen, in modo da potere accedere ad oggetti URL come file. In questo caso vediamo l’esempio con le funzioni curl:

$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $request);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$response = curl_exec($ch);
curl_close($ch);

A questo punto entra in scena l’xml. Infatti per poter accedere ai dati ricavati dal feed dobbiamo convertire l’xml stesso in un oggetto su cui usare iteratori e proprietà degli array. Come? Le funzioni SimpleXML sono la risposta. Queste funzioni, che sono state introdotte con PHP5, permettono di trattare l’xml con un insieme di metodi studiati per accedere ai dati e per modificarne eventualmente i contenuti aggiungendone di altri.

$xml = new SimpleXMLElement($response);

Non resta che presentare ai lettori i contenuti del feed ricavati nei passaggi precedenti. L’accesso ai dati grazie al SimpleXML è un gioco da ragazzi: iterando sugli item contenuti in ogni channel facciamo l’echo del link e del titolo dell’articolo in questione…

foreach ($xml->channel->item as $item) {
echo "<a href='" . $item->guid . "' style='color:#000;'>" . $item->title . "</a><br />";
}

La presentazione del link è basilare, appositamente non sottoposta a stili particolari perchè non è questo l’obiettivo dell’articolo. Con poche specifiche allo style utilizzando i css si possono creare box adattabili ad ogni sito o blog integrandoli in modo perfetto al layout esistente.

Potete scaricare il codice completo dell’esempio da qui.

CREDITS
Le foto utilizzate nell’articolo sono state distribuite con licenza Creative Commons e prelevate da Flickr. Sono reperibili nel formato originale ai seguenti indirizzi:

Pubblicato da il 11 febbraio 2008 in phpblog, , , ,

Commenti

  • upnews.it scrive:

    Leggere RSS per proporre contenuti esterni…

    La gran parte (se non la totalità) dei blog e dei siti web oramai dà la possibilità di seguire l’aggiornamento dei contenuti, oltre che con la normale navigazione, sfruttando i feed RSS nell’aggregatore che più ci piace. RSS (acronimo di RDF Si…

  • Lascia un Commento

    *