Purtroppo il file non lo creo io e me lo devo leggere così com'è!
Io credo sia dovuto dalla struttura complessa dell'XML e dalle dimensioni (circa 3 mega!)
Purtroppo nonostante abbia aperto + di una discussione a riguardo non ho trovato nessuno in grado di aiutarmi, e così sono ancora nei guai!
Ti passo uno degli script che uso per l'aquisizione, se nessuno sa darmi un aiuto speriamo almeno sia di aiuto al nostro amico!
Codice PHP:
<html><body>
<?php
$filename="http://.....schede.xml";
if(!($fp = fopen("$filename" , "r")))
die("Non posso aprire il file");
$elenco_counter = 0;
$img = array();
$img[$elenco_counter] = 0;
$elenco_data = array();
$xml_current_tag_state = '';
$newpub = 999999;
function cleantxt($testo)
{
$search = array('<', '>', '&', '\'', '"');
$replace = array('<', '>', '&', ''', '"');
$testo = str_replace($search, $replace, $testo);
$testo = str_replace('&', '&', $testo);
return $testo;
}
function startElementHandler($parser, $element_name, $element_attribs)
{
global $elenco_counter;
global $elenco_data;
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler($parser, $element_name)
{
global $elenco_counter;
global $img;
global $elenco_data;
global $xml_current_tag_state;
global $newpub;
global $oldpub;
global $uscita;
$xml_current_tag_state = '';
if( $element_name == "ITEM" )
{
$elenco_counter++;
$img[$elenco_counter] = 0;
if ($newpub <= $oldpub ) {
$uscita = "si";
}
}
}
function characterDataHandler($parser , $data)
{
global $elenco_counter;
global $img;
global $elenco_data;
global $xml_current_tag_state;
global $newpub;
if( $xml_current_tag_state == '' )
return;
if( $xml_current_tag_state == "IDSCHEDA" )
{
$elenco_data[$elenco_counter]["idscheda"] = $data;
$newpub = $data;
}
if( $xml_current_tag_state == "DIDIMG" )
{
$img[$elenco_counter] = $img[$elenco_counter] + 1;
$elenco_data[$elenco_counter]["didimg" . $img[$elenco_counter]] = $data;
}
if( $xml_current_tag_state == "NOMEIMG" )
{
$elenco_data[$elenco_counter]["nomeimg" . $img[$elenco_counter]] = $data;
}
}
require("config.php");
$query = @mysql_query("SELECT ultdtpubli FROM ultpubli");
$result = @mysql_fetch_array($query);
$oldpub = $result['ultpubli'];
if( !($xml_parser = xml_parser_create()) )
die("Non riesco a creare il parser XML");
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;
}
if (isset($uscita ))
{
break;
}
}
//libero la memoria
xml_parser_free($xml_parser);
for($i=0 ; $i < $elenco_counter - 1 ; ++$i)
{
for($j=1 ; $j <= $img[$i] ; ++$j) {
require("config.php");
$insert_sql = "insert into immagini ( idscheda, idimg, nomeimg) values (";
$insert_sql .= $elenco_data[$i]["idscheda"] . ", '";
$insert_sql .= $elenco_data[$i]["didimg" . $j] . "', '";
$insert_sql .= $elenco_data[$i]["nomeimg" . $j] . "')";
//echo $insert_sql;
mysql_query($insert_sql);
require("chiudi.php");
}
echo "
\n";
}
echo "<script language=\"JavaScript\">location.href=\"parsatourope.php\"; </script>";
?>
</body></html>