Ciao a tutti,
avrei bisogno del vostro aiuto per creare un piccolo script che mi permetta di salvare i post di wordpress.
Tralasciando il discorso di mysql, vorrei avere dei txt, nominati in base al titolo del post, con la possibilità di salvarli successivamente.
Avevo pensato di scrivere un funzione che mi leggesse dal RSS ogni X ore, e in base al titolo del post mi salvasse l'html della pagina.
Ho provato a inserire questo codice, ma per qualche motivo, mi restituisce solo file vuoti: li rinomina nel modo giusto ma sono vuoti.
Codice PHP:
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_current_tag_state == "DESCRIPTION" ) {
$item_data[$item_counter]["description"]["description"] = $data;
}
}
if( !($xml_parser = xml_parser_create()) ){
die("Impossibile creare l' XML parser!");
}
Codice PHP:
$filename="http://www.androidaily.com/feed/";
if( ! ($fp = fopen( "$filename" , "r" )) ){echo "Impossibile aprire il file xml!";}
$item_counter = 0;
$item_data = array();
$xml_current_tag_state = '';
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "characterDataHandler");
$data = stream_get_contents($fp);
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 ){
$html = file_get_contents($item_data[$i]["link"]);
$filename = 'files/' . $item_data[$i]["title"] . '.txt';
$handle = fopen($filename,"w")or die("can't open file");
fclose ($handle);
$fs = fopen($filename,"w")or die("can't open file");
$stringData = $html;
fwrite($fh, $stringData);
fclose($fh);
Avevo pensato di leggere prima dal RSS e seguire il link e salvare tutto in un file, vi sembra una cosa fattibile? Anche perchè successivamente vorrei estrapolare titolo, descrizione, eventuali links da ogni articolo.
Grazie