Vito D'Alessandro

Web Designer Bari, Programmatore PHP MySQL Bari, Web Developer Bari

Home PageContattiSitemapArea Riservata

Vito D'Alessandro si occupa di sviluppo siti
internet professionali ed è programmatore php.
Progetta e realizza siti web in Bari e provincia.
Random Photo
> Home > Blog > Programmazione > Parsare un Feed RSS con PHP e la classe SimpleXML()

22 Dicembre 2009

Parsare un Feed RSS con PHP e la classe SimpleXML()

Con l'avvento del Web 2.0 l'RSS (acronimo di Really Simple Syndication) è diventato lo strumento più popolare per la distribuzione dei contenuti. Si tratta di file scritti in XML con un DTD (Document Type Definition) standard stilato da consorzio W3C.

Effettuare il parsing di questi file con PHP è un operazione piuttosto semplice: specie se si utilizza la classe simpleXML().

Prendiamo un esempio di feed RSS ed analizziamone la struttura:

<?xml version="1.0" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>TITOLO DEL FEED</title>
<link>http://www.urlsitofeed.com/</link>
<description>DESCRIZIONE DEL SITO</description>
<language>it-IT</language>
<lastBuildDate>Mon, 01 Dec 2000 00:00:00 +0100</lastBuildDate>
<item>
<title>TITOLO ARTICOLO 1</title>
<description>DESCRIZIONE DELL'ARTICOLO</description>
<link>http://www.urlsitofeed.com/pagina-articolo.html</link>
<pubDate>Mon, 01 Dec 2000 00:00:00 +0100</pubDate>
</item>
<item>
<title>TITOLO ARTICOLO 2</title>
<description>DESCRIZIONE DELL'ARTICOLO</description>
<link>http://www.urlsitofeed.com/pagina-articolo.html</link>
<pubDate>Mon, 01 Dec 2000 00:00:00 +0100</pubDate>
</item>
</channel>
</rss>

Vediamo dunque una parte iniziale presentante le informazioni sul feed che si vuole leggere (TITOLO, DESCRIZIONE, LINK AL SITO, LINGUA DEL FEED, ULTIMO AGGIORNAMENTO) e, successivamente, tante sezioni, contrassegnate dai tag <item></item> che contengono le informazioni sugli articoli (TITOLO, DESCRIZIONE, LINK ALL'ARTICOLO, DATA DI PUBBLICAZIONE).

Apriamo il nostro editor PHP e creiamo questo semplice script:

<?php
$getfile = file_get_content('http://www.urlsitofeed.com/feedRSS.xml');
$xml = new SimpleXMLElement($getfile);

Fatto questo abbiamo recuperato tutto il contenuto del feed RSS e siamo pronti per l'elaborazione.

Dobbiamo ora creare due array: il primo conterrà le informazioni sul feed RSS e il secondo i dati di ogni articolo. Proseguendo dunque scriviamo:

$feed_info = array();
$feed_art = array();

Alle celle del primo array assegnamo:

$feed_info['titolo_feed'] = $xml->channel->title
$feed_info['link_feed'] = $xml->channel->link
$feed_info['descrizione_feed'] = $xml->channel->description
$feed_info['lingua_feed'] = $xml->channel->language
$feed_info['last_upd_feed'] = $xml->channel->lastBuildDate

Il secondo array lo andremo a riempire mediante l'utilizzo del costrutto foreach() in maniera tale da costruire un array bidimensionale:

$i = 0; #inizializzo a 0 una variabile indice
foreach($xml->channel->item as $item)
{
$feed_art[$i]['titolo_articolo'] = $item->title
$feed_art[$i]['descr_articolo'] = $item->description
$feed_art[$i]['data_articolo'] = $item->date("d-m-Y H:i:s", strtotime($item->pubDate));
$feed_art[$i]['link_articolo'] = $item->link
$i++;
}
?>

Bene, ora tutte le informazioni e gli articoli del feed RSS sono contenuti nei due array. Vi basterà, con altrettanti costrutti di loop, stampare a video il tutto.

Non mi dilungo in questo ultimo passaggio perchè si presume che sappiate già come fare.



Postato da Vito D'Alessandro alle 10.33 in Programmazione


Commenti


Non ci sono commenti. Puoi lasciare tu il primo!

Nome*:
Home Page:
E-Mail*: (resterà segreta)
Commento*:

Codice di sicurezza*:
  
*: i campi contrassegnati con l'asterisco sono obbligatori
Ricerca Articoli


Categorie
Archivio
Espandi Tutti | Contrai Tutti
Ultimo Progetto
Pizzeria da Gianni

Pizzeria da Gianni
Realizzazione completa poggiandosi su Wordpress, modifica di alcuni plugin utilizzati, modifica codice jQuery.
Dal Guestbook
19/12/2007 - Alex

Mi appresto a giudicare il tuo sito (anche se non te ne frega un caiser):

GRAFICA 6
Niente di eccezionale, ma neanche scarso.

CONTENUTI 8
Sia per quelli presenti sia per quelli che metterai, non sono solo testuali, sono accompagnati da foto ben piazzate

EFFICIENZA 9,5
Il tuo stile di programmazione ti porta ad ottimizzare il codice, infatti l'invio di email o di commenti, per molti altri è cosa ardua.
Codice riccamente documentato e semplice da capire anche per chi ha solo le basi della programmazione.

VOTO GLOBALE 7.8
Ti serve solo un po più di fantasia, qualcosa animata su un sito web non guasta mai, qualcosa fatta in flash ad esempio...

p.s. per chi leggerà il commento al di fuori di Vito: non ho pubblicato neanche un sito, quindi potete mandarmi a quel paese.


Vuoi lasciare anche tu un messaggio o vedere gli altri commenti?