Ho questo file import, per importare da un link esterno (xml) dei dati, però non funziona e non riesco a capire il perchè.
posto il codice che possa essere d'aiuto:
$host="+++++";
$user="++++++";
$password="+++++++";
$name="+++++++";
$conn = mysql_connect($host, $user, $password) or die("connesione non riuscita");
$database=mysql_select_db($name) or die("Impossibile selezionare db accidenti");
$file = $mosConfig_absolute_path."/file.php.xml";
$url = "http://www.sito.it/file.php";
$modalita = "F"; // F = da file; U = da URL
require_once("libxml.php");
function bstr2int($value) {
return ($value=='true') ? 1 : 0;
}
switch ($modalita) {
case "F":
/* MODALITA' DA FILE */
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
$data = fread($fp, filesize($file));
fclose($fp);
break;
case "U":
/* MODALITA' DA URL */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$info = curl_getinfo($ch);
if ($data === false || $info['http_code'] != 200) {
$output = "No cURL data returned for $url [". $info['http_code']. "]";
if (curl_error($ch))
$output .= "<hr/>". curl_error($ch);
exit();
}
curl_close($ch);
break;
}
$last = 0;
$p1 = TRUE;
$i = 0;
$query = "UPDATE databse SET publish=0";
$database->setQuery($query);
$database->loadObject($record);
while ($p1!==FALSE) {
$i++;
$p1 = strpos($data,"<ogett",$last);
if ($p1!==FALSE) {
$p2 = strpos($data,"</ogett>",$p1)+strlen("</ogett>");
$last = $p2;
$ogett = substr($data,$p1,$p2-$p1);
$p3 = strpos($ogett,"<informazioni_aggiuntive>")+strlen( "<informazioni_aggiuntive>");
$p4 = strpos($ogett,"</informazioni_aggiuntive>");
$informazioni_aggiuntive = substr($ogett,$p3,$p4-$p3);
$informazioni_aggiuntive = nl2br($informazioni_aggiuntive);
$p3 = strpos($ogett,"<urlimmagini>");
$p4 = strpos($ogett,"</urlimmagini>")+strlen("</urlimmagini>");
$urlimmagini = substr($ogett,$p3,$p4-$p3);
$immagini = XMLtoArray($urlimmagini);
$immagini = $immagini['URLIMMAGINI']['IMMAGINE'];
$p2 = strpos($data,"<informazioni_aggiuntive>",$p1)+strl en("<informazioni_aggiuntive>");
$ogett = substr($data,$p1,$p2-$p1);
$ogett = str_replace("<informazioni_aggiuntive>","</ogett>",$ogett);
$mobile = XMLtoArray($ogett);
$mobile = $mobile['ogett'];
$id = $mobile['ID'];
$brand = array_search($mobile['MODELLO']['MARCA'],$brands);
$hot = ($mobile['OCCASIONE']=="true" ? 1 : 0);
$publish = ($mobile['ONLINE']=="true" ? 1 : 0);
$porte = empty($mobile['MODELLO']['PORTE']) ? 0 : $mobile['MODELLO']['PORTE'];
$accessori = implode("|",$mobile['ACCESSORI']['ACCESSORIO']);
$accessori2 = implode("|",$mobile['ACCESSORI']['EXTRA']);
$fields = array(
"obj_id"=> $id,
"cat"=> $catid,
);
$query = "SELECT id,obj_id FROM databse WHERE obj_id='".$id."'";
$database->setQuery($query);
$database->loadObject($record);
if ($record) {
$rid = $record->id;
$query = "UPDATE databse SET ";
$first = true;
foreach ($fields as $key=>$value) {
if (!$first) {
$query .= ",";
} else {
$first = false;
}
if (is_numeric($value)) {
$query .= $key."=".$value;
} else {
$query .= $key."=".$database->Quote($value);
}
}
$query .= " WHERE id=".$rid;
$database->setQuery($query);
$database->query($query);
if ($database->getErrorNum()!=0) {
echo "ERRORE NELLA QUERY:
<pre>".$query."</pre>
".$database->getErrorMsg();
exit();
}
} else {
$query = "INSERT INTO database (".implode(",",array_keys($fields)).") VALUES (";
$first = true;
foreach ($fields as $key=>$value) {
if (!$first) {
$query .= ",";
} else {
$first = false;
}
if (is_numeric($value)) {
$query .= $value;
} else {
$query .= $database->Quote($value);
}
}
$query .= ")";
$database->setQuery($query);
$database->query($query);
if ($database->getErrorNum()!=0) {
echo "ERRORE NELLA QUERY:
<pre>".$query."</pre>
".$database->getErrorMsg();
exit();
}
$rid = $database->insertid();
}
}
}
echo "TOTALE: " .$i;
// chiudo la connessione a MySQL
mysql_close();
echo 'Query eseguita correttamente';