Ecco come un piccolo script in php per leggere un feed rss con php e xml. Vediamo ora come utilizzare uno degli script che si trovano più frequentemente in rete per leggere file xml con php, per leggere un feed rss e riportare sul proprio sito internet i link agli ultimi post di un blog o di un sito web. Vediamo per esempio come importare sul proprio sito gli ultimi 10 articoli pubblicati su Izzyweb.it.
Nella variabile $filename inseriamo l’indirizzo del feed rss. Con una piccola modifica potete anche non far visualizzare il link del sito originale, per avere contenuti sempre nuovi nelle vostre pagine, con il minimo sforzoEcco lo script in php
<?php
$filename="http://feedproxy.google.com/izzyweb/aTsa";
if( ! ($fp = fopen( "$filename" , "r" )) ){echo "Impossibile aprire il file xml!";}
$item_counter = 0;
$item_data = array();
$xml_current_tag_state = '';
function startElementHandler( $parser, $element_name, $element_attribs ){
global $item_counter;
global $item_data;
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler( $parser, $element_name ){
global $item_counter;
global $item_data;
global $xml_current_tag_state;
$xml_current_tag_state = '';
if( $element_name == "ITEM" ) {
$item_counter++;
}
}
function characterDataHandler( $parser , $data ){
global $item_counter;
global $item_data;
global $xml_current_tag_state;
if( $xml_current_tag_state == '' ) {
return;
}
if( $xml_current_tag_state == "TITLE" ) {
$item_data[$item_counter]["title"] = $data;
}
if( $xml_current_tag_state == "LINK" ) {
$item_data[$item_counter]["link"] = $data;
}
}
if( !($xml_parser = xml_parser_create()) ){
die("Impossibile creare l' XML parser!");
}
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "characterDataHandler");
while( $data = fread($fp, 4096) ){
if( !xml_parse($xml_parser, $data, feof($fp)) ) {
break; // esce dal loop quando finisce
}
}
xml_parser_free($xml_parser);
for( $i=0 ; $i < $item_counter ; ++$i ){
echo "<a href='".$item_data[$i]["link"]."'>".$item_data[$i]["title"]."</a><BR/>";
}
?>
Nessun commento:
Posta un commento