j'essaie depuis plusieurs jours de modifier un script qui permet d'afficher la météo sur son site mais étant débutant en XML je ne parviens pas à mes fins.
En fait je voudrais récuperer une donnée depuis le fichier XML du site weather.com , celle qui indique l'indice uv.
J'ai fait des recherches sur internet, mais cela n'a rien donné.
Voilà le code :
CODE
// Lecture d'un fichier XML
function lit_xml($chaine,$isFile,$item,$champs) {
// on lit le fichier ou la chaîne
if($isFile) $chaine = _AT_file_get_contents($chaine);
if($chaine) {
// on explode sur <item>
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item>
for($i=1;$i<sizeof($tmp);$i++)
// on lit les champs demandés <champ>
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute au tableau
$tmp3[$champ][] = trim(@$tmp2[1]);
}
// et on retourne le tableau
return @$tmp3;
}
}
// Extraction primaire
$xml = lit_xml($url,true,"day d=.*",array("hi","low","part p=\"d\"","part p=\"n\"","wind","ppcp","uv"));
// Extraction des icones, messages et du taux d'humidité et uv
for($i=0;$i<$jours;$i++) {
$tmp = preg_split("/<\/?icon>/",$xml["part p=\"d\""][$i]);
$xml["icond"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["part p=\"d\""][$i]);
$xml["altd"][$i] = $tmp[1];
$tmp = preg_split("/<\/?hmid>/",$xml["part p=\"d\""][$i]);
$xml["hmid"][$i] = $tmp[1];
$tmp = preg_split("/<\/?icon>/",$xml["part p=\"n\""][$i]);
$xml["iconn"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["part p=\"n\""][$i]);
$xml["altn"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["wind"][$i]);
$xml["dvent"][$i] = $tmp[1];
$tmp = preg_split("/<\/?s>/",$xml["part p=\"d\""][$i]);
$xml["vvent"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["uv"][$i]);
$xml["uv"][$i] = $tmp[1];
}
function lit_xml($chaine,$isFile,$item,$champs) {
// on lit le fichier ou la chaîne
if($isFile) $chaine = _AT_file_get_contents($chaine);
if($chaine) {
// on explode sur <item>
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque <item>
for($i=1;$i<sizeof($tmp);$i++)
// on lit les champs demandés <champ>
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute au tableau
$tmp3[$champ][] = trim(@$tmp2[1]);
}
// et on retourne le tableau
return @$tmp3;
}
}
// Extraction primaire
$xml = lit_xml($url,true,"day d=.*",array("hi","low","part p=\"d\"","part p=\"n\"","wind","ppcp","uv"));
// Extraction des icones, messages et du taux d'humidité et uv
for($i=0;$i<$jours;$i++) {
$tmp = preg_split("/<\/?icon>/",$xml["part p=\"d\""][$i]);
$xml["icond"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["part p=\"d\""][$i]);
$xml["altd"][$i] = $tmp[1];
$tmp = preg_split("/<\/?hmid>/",$xml["part p=\"d\""][$i]);
$xml["hmid"][$i] = $tmp[1];
$tmp = preg_split("/<\/?icon>/",$xml["part p=\"n\""][$i]);
$xml["iconn"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["part p=\"n\""][$i]);
$xml["altn"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["wind"][$i]);
$xml["dvent"][$i] = $tmp[1];
$tmp = preg_split("/<\/?s>/",$xml["part p=\"d\""][$i]);
$xml["vvent"][$i] = $tmp[1];
$tmp = preg_split("/<\/?t>/",$xml["uv"][$i]);
$xml["uv"][$i] = $tmp[1];
}
la méthode que j'ai utiliser pour récuperer l'indice uv, m'affiche quelque chose mais après vérification sur un autre site, l'indice ne correspond pas. Il y a donc une erreur
Voilà je suis un peu perdu....
Merci pour votre aide