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
Schedule

Schedule
Linea di prodotto scritta in Java + MySQL per l'esame di Ingegneria del Software.
Si tratta di un gestionale per i corsi di studio del dipartimento di Informatica.
Dal Guestbook
03/04/2009 - Carlo Maione

Complimenti sinceri per il tuo nuovo sito e in bocca al lupo per la tua carriera!!!! Carlo Maione

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