Aggregatore di feed in php

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 sforzo 😉

Ecco 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/>";  }  ?>

Izzyweb

Amo internet e tutti i suoi confini

Un pensiero riguardo “Aggregatore di feed in php

  • 29 Maggio 2012 in 16:51
    Permalink

    Come si fa ad impostare che i feed siano un tot. in numero? Ovvero se ne voglio fare apparire solo 10?, solo 3? dove modifico lo script? Perche’ nel titole del post c’e’ scritto che e’ uno script per fare apparire 10 feed, ma non vi e’ traccia del numero 10 in questo scritp…. aiuto!
    grazie…

I commenti sono chiusi

Su questo sito utilizziamo strumenti nostri o di terze parti che memorizzano piccoli file (cookie) sul tuo dispositivo. I cookie sono normalmente usati per permettere al sito di funzionare correttamente (cookie tecnici), per generare statistiche di uso/navigazione (cookie statistici) e per pubblicizzare opportunamente i nostri servizi/prodotti (cookie di profilazione). Possiamo usare direttamente i cookie tecnici, ma hai il diritto di scegliere se abilitare o meno i cookie statistici e di profilazione. Abilitando questi cookie, ci aiuti ad offrirti una esperienza migliore con noi. Cookie policy