Ritorna alla Home Page  Aggiungi LinuxGuide.it ai Preferiti  
Documentazione Linux, HowTo, Guide, Configurazioni, Tutorial, FaQ, News, Downloads e tanto altro ancora... LinuxGuide.it
""
 "" Home   "" Documentazione e Tutorial   "" Linux Commands Line   "" Recensioni   "" Download Software    
""

Home Page      Chiedi supporto al forum    

Feed RSS piu veloci sul tuo sito! 
martedì, febbraio 5, 2008, 10:47 AM - Scripts
team
Descrizione
Questo script permette di effettuare il download di una pagina web contenente Feed RSS remoti, ed eseguirne successivamente l'upload degli stessi titoli sul proprio sito web.

Scenario di applicazione
Immaginiamo per esempio, come scenario di applicazione per questo script, un portale web "www.esempio.com" che desidera acquisire i feed rss del "Blog di LinuxGuide.it" e pubblicarli all'interno di una pagina web dello stesso sito.

Perchè fare questo?
Semplicemente per non voler effettuare una query al feed rss di LinuxGuide.it ogni qualvolta un utente visualizza una pagina sul sito esempio.com che richiama il feed rss remoto. Il vantaggio principale è che migliorerà la velocità di caricamento delle pagine(che si linkano al feed rss) in quanto i titoli rss sono stati scaricati dal sito LinuxGuide.it e caricati via ftp sul portale esempio.com adesso linkati sul percorso locale.

rss_dwl.sh - Shell script da caricare su una linux box
#-- rss_dwl.sh - INIZIO SCRIPT Shell --
#!/bin/bash
# Nome script rss_dwl.sh
# Scritto da LinuxGuide.it
# LinuxGuide.it non si assume alcuna responsabilita' e in nessun
# caso può esserne attribuita per eventuali danni fisici, morali o
# di altro tipo causati dall'utilizzo dei contenuti, dai comandi,
# dalle configurazioni e da qualsiasi altro contenuto pubblicato
# su www.linuxguide.it o copie
# degli stessi contenuti distribuiti da terzi.
#
cd /tmp
mkdir /tmp/cache_news
cd /tmp/cachenews
wget www.linuxguide.it/get_rss.php -O blog_news.htm
lftp -u 'UserName@esempio.com,PassWord' ftp.esempio.com -e "put blog_news.htm;exit"
cd ..
rm -rf cache_news
cd
exit 0

#-- FINE SCRIPT Shell rss_dwl.sh --

get_rss.php - Script PHP da caricare sul vostro sito
Questo script è in grado di leggere feed xml - esempio:
// $filename="http://www.esempio.com/rss.xml";

#-- INIZIO SCRIPT PHP per Acquisizione dei Feed remoti --#
<?
$filename="http://www.linuxguide.it/blogit/rss.php";
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=4 ; $i < $item_counter ; ++$i ){
echo "<BR><li><a href='".$item_data[$i]["link"]."'>".$item_data[
$i]["title"]."</a></li><br>";
}
?>

#-- FINE SCRIPT PHP per Acquisizione dei Feed remoti --#


Se volete potete programmare l'esecuzione dello script ogni ora
--CRONTAB--
00 */1 * * * /usr/local/bin/rss_dwl.sh
--CRONTAB--


Sostituite gli url di esempio con quelli da voi desiderati...
..se poi lo ritenete utile potete acquisire i feed rss di LinuxGuide.it e pubblicarli sul vostro sito
:-)




Segnala questo documento su:
Segnalo OkNotizie Digg Del.icio.us Mr. Wong Google Yahoo Furl Technorati Newsvine

1 commento ( 11255 visite )   |  permalink   |   ( 3 / 1422 )


<< <Indietro | 1 | 2 | 3 | 4 | 5 | 6 | Altre notizie> >>