Corsi on-line

Parsing dei feed RSS con SimplePie e PHP

  • CommentiScrivi un commento
  • ForumDiscuti sul forum
  • PrevGestire file Zip PHP
  • NextPhp-Stats: installazione, configurazione e primo utilizzo

I feed RSS rappresentano uno strumento ormai di larghissimo utilizzo nel Web, si tratta di una tecnologia semplice e di facile implementazione per condividere, diffondere e pubblicizzare efficacemente i contenuti delle proprie pagine Internet tramite il metalinguaggio XML.

SimplePie è una classe scritta in PHP che consente di effettuare il parsing di di feed RSS e Atom semplicemente richiamando i metodi riferiti agli oggetti che ne fanno parte. Usarla è semplicissimo e permette allo sviluppatore di risparmiare una grande quantità di lavoro.

L'articolo continua dopo la pubblicità

SimplePie è distribuita gratuitamente e può essere modificata sulla base delle proprie esigenze, ma già la sua configurazione di default permette di eseguire numerose utili operazioni.
Per usufruirne sarà sufficiente scaricarla dalla sezione downloads del sito del produttore e richiamarla grazie al costrutto require() all'interno delle pagine in cui vogliamo effettuare il parsing degli RSS:

require($_SERVER['DOCUMENT_ROOT'] . '/simplepie.inc');
Vediamo ora un semplice esempio del suo utilizzo, i commenti aiuteranno nella comprensione del codice proposto:
<?php
// richiamiamo la classe SimplePie 
require($_SERVER['DOCUMENT_ROOT'] . '/simplepie.inc'); 

// istanziamo l'oggetto contenente i metodi per il parsing del feed
$feed = new SimplePie(); 

// indichiamo il percorso assoluto al documento XML
$feed-> feed_url('http://www.sito.it/feed.xml'); 

// indichiamo il percorso alla cartella della cache
$feed-> cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache'); 

// il feed verrà inizializzato tramite il metodo init
// vero motore della classe 
$feed-> init(); 

// introduciamo il metodo per il controllo dell'encoding della pagina
$feed-> handle_content_type(); 

/*
* Ora sarà possibile passare al codice HTML della pagina 
* all'interno della quale effettueremo il parsing del feed 
*/
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
<title>Pagina dei Feed</title> 
</head> 
<body>

<?php 
//introduciamo le informazioni che verranno mostrate dal feed
if ($feed->data)
{ 
  // mostriamo i titoli dei feed e linkiamoli verso
  // i siti Web di origine
  echo "<h3><a href=\"" . $feed->get_feed_link() . "\">" . $feed->get_feed_title() . "</a></h3>";

  // Indichiamo il numero massimo di feed che vogliamo mostrare
  // e passiamo alla loro visualizzazione
  $max = $feed->get_item_quantity(5); 
  for ($x = 0; $x < $max; $x++)
  { 
    $item = $feed->get_item($x);
    // mostriamo i collegamenti ai post con il relativo titolo, data e descrizione
    echo "<h2><a href=\"" . $item->get_permalink() . "\">" . $item-> get_title() . "</a></h2>";
    echo $item->get_date('j M Y') . "<br>" . $item->get_description(); 
  }
}
?> 
</body> 
</html>
Come è possible notare, l'utilizzo della classe è estremamente semplice, inoltre sono previste ultriori features per ricavare il massimo dai propri feed, una delle più importanti dà la possibilità di segnalare le news ai più noti servizi per la loro condivisione come Delicius e Digg:
<a href="<?php echo $item->add_to_delicious(); ?>">Del.icio.us</a> |
<a href="<?php echo $item->add_to_digg(); ?>">Digg this!</a> | 
<a href="<?php echo $item->add_to_newsvine(); ?>">Newsvine</a> 

Partecipa alle pre-registrazioni dei domini .cloud

Non perdere l'opportunità di aggiudicarti prima degli altri uno dei nuovi domini .cloud! Prenota i migliori domini e proteggi il tuo nome!

Corsi
  • Corso Linux
    Corso Linux
    Guida completa al sistema open-source. A partire da 39 €
  • Corso MySQL
    Corso MySQL
    Gestione del database open-source. A partire da 39 €
  • Corso PHP
    Corso PHP
    Creare siti web dinamici avanzati con PHP e MySQL. A partire da 39 €
Vedi anche...
Guide