« 22 Ottobre 2004 - Cronache dalla rete | Principale | Provocazioni sui sentieri dei CSS »

22/10/04

Un RSS Reader in php facile e veloce

Requisiti: Per poter usare questo script il php deve avere il supporto XML installato. Con questo script possiamo facilmente pubblicare sul nostro sito i contentuti che altri condividono in Rete attraverso un canale RSS.
Scegliamo quindi un sito da cui prendere il nostro RSS. I siti che offrono la syndication dei contenuti possono facilmente essere individuati tramite le icone [RSS], [XML], [RDF]. Noi prenderemo come esempio i post del weblog di Paolo Valdemarin.

Di seguito c'è tutto il codice dell'applicazione che possiamo facilmente copiare ed incollare per creare il nostro RSS Reader.

<?php
$insideitem 
false;
$tag '';
$title '';
$description '';
$link '';

function 
startElement($parser$name$attrs) {
 global 
$insideitem$tag$title$description$link;
 if (
$insideitem) {
  
$tag $name;
 } elseif (
$name == 'ITEM') {
  
$insideitem true;
 }
}

function 
endElement($parser$name) {
 global 
$insideitem$tag$title$description$link;
 if (
$name == 'ITEM') {
  
printf('<p><b><a href=\'%s\'>%s</a></b><br>',
   
trim($link),trim($title));
  
printf('%s</p>'."\n",trim($description));
  
$title '';
  
$description '';
  
$link '';
  
$insideitem false;
 }
}

function 
characterData($parser$data) {
 global 
$insideitem$tag$title$description$link;
 if (
$insideitem) {
 switch (
$tag) {
  case 
'TITLE':
  
$title .= $data;
  break;
  case 
'DESCRIPTION':
  
$description .= $data;
  break;
  case 
'LINK':
  
$link .= $data;
  break;
 }
 }
}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser'startElement''endElement');
xml_set_character_data_handler($xml_parser"characterData");
$fp fopen('http://paolo.evectors.it/italian/rss.xml','r')
 or die(
'Error reading RSS data.');
while (
$data fread($fp4096)) {
 
xml_parse($xml_parser$datafeof($fp))
  or die(
sprintf('XML error: %s at line %d',
 
xml_error_string(xml_get_error_code($xml_parser)),
 
xml_get_current_line_number($xml_parser)));
}
fclose($fp);
xml_parser_free($xml_parser);
?>


Come potete notare la funzione fopen() apre il link al file xml che abbiamo scelto. Per quanto riguarda le funzioni XML del php, se volete approfondire e/o capire il loro funzionamento vi rimando a questo link: Funzioni relative al parser XML.
Questa piccola applicazione è abbastanza completa. Il suo scopo è quello di darvi la possibilità di creare un RSS Reader nel minor tempo possibile. Per personalizzare la visualizzazione potete modificare i tag HTML nella funzione endElement().

Inviato da Lorenzo Torello alle 10:21 in Php | Permalink

TrackBack

TrackBack URL per questo post:
http://www.typepad.com/services/trackback/6a00d8341c706653ef00d834358a1253ef

I blog che linkano questo post: Un RSS Reader in php facile e veloce

Commenti

Ottimo esempio dal punto di vista didattico. Se qualcuno volesse una soluzione in php potente e gratuita, che funzioni in quattro righe di codice e che supporti tutti i formati da rss 0.9 ad atom può guardare qui: http://magpierss.sourceforge.net/

Inviato da: Cristian Vidmar | 22 ottobre 2004 alle 14:31

Vorrei avere qualche tutorial per poter eseguire delle funzioni nei database mysql con php....grazie

Inviato da: roberto | 24 giugno 2005 alle 15:10

Ciao sto testando questo parser nel mio sito solo che vedo la codifica dei caratteri accentati in modo sbagliato.
In + non vedo il numero dei commenti ed i tag come nel link di esempio.
Uso wordpress 2.2

Qualche aiutino?
Ciao Grazie

Inviato da: stew | 13 luglio 2007 alle 02:56

Invia un commento