Aller au contenu

crindor

Membre
  • Compteur de contenus

    2
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre
  1. si tu veux je te donnes la ligne de commande à mettre dans cron pour lancer le script et il y a quand meme une amelioration à apporter si tu utilises truncate: tester l'accessibilité de ton fichier xml sinon tu vas vider la base sans rien remettre dedans
  2. salut Americas voici un parseur que tu peux adapter avec les champs que tu veux une fois la structure de ta base créée tu l'appelles en tache cron et çà marche tout seul tu peux remplacer truncate par update ou autre chose çà marche puisque je m'en sert <?php mysql_connect("tonroot","tabase","tonpass") or die("Impossible de se connecter"); mysql_select_db("tabase") or die("pas possible de trouver la base"); mysql_query("TRUNCATE TABLE `sejour`"); $file = "http://www.tonsite.com/tonxml.xml"; if(isset($file)) { $title = ""; $url = ""; $curtag = ""; /** fonction startElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function startElement($parser, $name, $attrs) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; $curtag = $name; if ($name == "ID") $id = ""; if ($name == "RUBRIQUE") $rubrique = ""; if ($name == "PAYS") $pays = ""; if ($name == "TITRE") $titre = ""; if ($name == "FORM") $form = ""; if ($name == "ARRIVE") $arrive = ""; if ($name == "DUREE") $duree = ""; if ($name == "IMG") $img = ""; if ($name == "RESUME") $resume = ""; if ($name == "PRIX") $prix = ""; if ($name == "URL") $url = ""; } /** fonction endElement, déclenchée lorsque le parseur rencontre une balise XML du type **/ function endElement($parser, $name) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; $curtag = ""; if ($name == "URL") { $rubrique = addslashes ($rubrique); $pays = addslashes ($pays); $titre = addslashes($titre); $form = addslashes ($form); $arrive = addslashes ($arrive); $resume = addslashes($resume); $query = "INSERT INTO sejour(id,rubrique,pays,titre,form,arrive,duree,img,resume,prix,url) VALUES('".$id."','".$rubrique."','".$pays."','".$titre."','".$form."','".$arrive."','".$duree."','".$img."','".$resume."','".$prix."','".$url."')"; $result = mysql_query($query); } } /** fonction characterData, déclenchée lorsque le parseur rencontre des caractères, à l'intérieur d'un noeud XML **/ function characterData($parser, $data) { global $curtag, $id, $rubrique, $pays, $titre, $form, $arrive, $duree, $img, $resume, $prix, $url ; if ($curtag == "ID") $id .= $data; if ($curtag == "RUBRIQUE") $rubrique .= $data; if ($curtag == "PAYS") $pays .= $data; if ($curtag == "TITRE") $titre .= $data; if ($curtag == "FORM") $form .= $data; if ($curtag == "ARRIVE") $arrive .= $data; if ($curtag == "DUREE") $duree .= $data; if ($curtag == "IMG") $img .= $data; if ($curtag == "RESUME") $resume .= $data; if ($curtag == "PRIX") $prix .= $data; if ($curtag == "URL") $url .= $data; } /** crée un nouveau parseur **/ $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); /** enregistre les trois fonctions ci dessus **/ xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($file, "r"))) { die("Impossible d'ouvrir l'URL..."); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("erreur XML: %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); mysql_close(); } ?> [Edit captain_torche]Merci d'utiliser la balise CODEBOX pour les codes longs
×
×
  • Créer...