Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1018 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  modification Script météo

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

modification Script météo

n°1328719
pef
Posté le 20-03-2006 à 12:16:32  profilanswer
 

bonjour,
 
sur mon site internet en création (http://www.skydivepamiers.fr/index.php) j'ai installé ce script Meteo:  
 

Code :
  1. <?
  2. setlocale(LC_TIME, "fr_FR" ); // ou "fr"
  3. $partner = "";
  4. $ville = "FRXX0076"; $vname="Paris";
  5. $jours = 4;
  6. $url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&unit=s&dayf=".$jours;
  7. // Conversion Fahrenheit->Celsius
  8. function f2c($t) { return round(($t-32)*5/9); }
  9. // Lecture d'un fichier XML
  10. function lit_xml($chaine,$isFile,$item,$champs) {
  11.    // on lit le fichier ou la chaîne
  12.    if($isFile) $chaine = @file_get_contents($chaine);
  13.    if($chaine) {
  14.       // on explode sur <item>
  15.       $tmp = preg_split("/<\/?".$item.">/",$chaine);
  16.       // pour chaque <item>
  17.       for($i=1;$i<sizeof($tmp);$i++)
  18.          // on lit les champs demandés <champ>
  19.          foreach($champs as $champ) {
  20.             $tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
  21.             // on ajoute au tableau
  22.             $tmp3[$champ][] = trim(@$tmp2[1]);
  23.          }
  24.       // et on retourne le tableau
  25.       return @$tmp3;
  26.    }
  27. }
  28. // Extraction primaire
  29. $xml = lit_xml($url,true,"day d=.*",array("hi","low","part p=\"d\"","part p=\"n\"" ));
  30. // Extraction des icones, messages et du taux d'humidité
  31. for($i=0;$i<$jours;$i++) {
  32.    $tmp = preg_split("/<\/?icon>/",$xml["part p=\"d\""][$i]);
  33.    $xml["icond"][$i] = $tmp[1];
  34.    $tmp = preg_split("/<\/?t>/",$xml["part p=\"d\""][$i]);
  35.    $xml["altd"][$i] = $tmp[1];
  36.    $tmp = preg_split("/<\/?hmid>/",$xml["part p=\"d\""][$i]);
  37.    $xml["hmid"][$i] = $tmp[1];
  38.    $tmp = preg_split("/<\/?icon>/",$xml["part p=\"n\""][$i]);
  39.    $xml["iconn"][$i] = $tmp[1];
  40.    $tmp = preg_split("/<\/?t>/",$xml["part p=\"n\""][$i]);
  41.    $xml["altn"][$i] = $tmp[1];
  42. }
  43. ?>
  44. <STYLE type="text/css"><!--
  45.    .fond { background-color:#669999 }
  46.    .corps { background-color:#D8E9EC }
  47.    .titre { color: #FFFFFF }
  48.    .sstitre { color: #858586 }
  49. --></STYLE>
  50. <table class=fond>
  51.    <tr><td class=titre><strong>METEO sur <?=$vname?></strong></td></tr>
  52.    <? for($i=0;$i<$jours;$i++) { ?>
  53.       <tr><td class=corps><table>
  54.       <tr>
  55.          <td colspan=3 class=sstitre><strong>
  56.             <?=ucfirst(strftime("%A %d %B %Y",time()+$i*24*3600))?>
  57.          </strong></td>
  58.       </tr>
  59.       <tr>
  60.          <td>Max: <?=($xml["hi"][$i]=="N/A" )?"N/A":f2c($xml["hi"][$i])."°C"?></td>
  61.          <td class=sstitre>JOUR</td>
  62.          <td class=sstitre>NUIT</td>
  63.       </tr>
  64.       <tr>
  65.          <td>Min: <?=($xml["low"][$i]=="N/A" )?"N/A":f2c($xml["low"][$i])."°C"?></td>
  66.          <td rowspan=2><img src="img/<?=$xml["icond"][$i]?>.png"
  67.             width=40 alt="<?=$xml["altd"][$i]?>"></td>
  68.          <td rowspan=2><img src="img/<?=$xml["iconn"][$i]?>.png"
  69.             width=40 alt="<?=$xml["altn"][$i]?>"></td>
  70.       </tr>
  71.       <tr>
  72.          <td>H%: <?=$xml["hmid"][$i]?></td>
  73.       </tr>
  74.       </table></td></tr>
  75.    <? } ?>
  76.    <tr><td align=center class=corps>
  77.       <a href="http://www.weather.com/?prod=xoap&par=<?=$partner?>"
  78.          target="_blank"><IMG src="img/TWClogo_32px.png" border=0></a>
  79.    </td></tr>
  80. </table>


 
 
il marche impec, mais il y a un probleme;  
le site qui fourni le flux xml (weather.com) ne renvoit la prévision que le matin, et tous les jours vers 15h
cela ne renvoit que des "N/A" en guise de previsions.
 
par ailleurs, sur le site d'ou vient ce script, une personne me donne une solution pour eviter cela en modifiant  
un peu le script, mais ne connaissant rien en PHP, je suis un peu perdu.
 
voila ce que me dit cette personne:
 
 
faire une Base de donnée ou plus simplement un fichier dans lequel tu stockes le flux xml de weather :
1. charge le flux xml de weather dans une variable
2. regarde si l'image est en N/A
3a. si non : sauve le flux dans le fichier
3b. si oui charge le fichier dans ta variable
4. affiche la météo d'après ta variable.
 
---------------------
 
quelqu'un aurait une idée ou un debut d'idée pour réaliser ces modifications ?
 
Merci d'avance pour votre aide.

Message cité 3 fois
Message édité par pef le 28-03-2006 à 23:42:51
mood
Publicité
Posté le 20-03-2006 à 12:16:32  profilanswer
 

n°1328730
chaced
Posté le 20-03-2006 à 12:47:10  profilanswer
 

Il ne faut pas lire le flux xml distant a chaque affichage de ta page, met lit le une fois par jour, puis tu le stockes sur ton serveur et tu lits ensuite le fichier xml sur ton serveur.


---------------
CPU-Z | Timespy | Mes bd
n°1328985
pef
Posté le 20-03-2006 à 18:39:21  profilanswer
 

oui c'est exactement ca, mais mon probleme c'est de realiser la modification. je sais pas faire ca :/
peux tu m'aider ? :)


Message édité par pef le 20-03-2006 à 18:40:08
n°1330870
pef
Posté le 23-03-2006 à 11:15:28  profilanswer
 

up :hello:

n°1330949
smaragdus
whores, drugs & J.S. Bach
Posté le 23-03-2006 à 12:21:01  profilanswer
 

ta solution se trouve dans les fonctions file_put_contents() et get_file_contents()
 
edit : ansi que file_exists() et stat() pour l'existence et la date du fichier.


Message édité par smaragdus le 23-03-2006 à 12:22:14
n°1332258
pef
Posté le 25-03-2006 à 19:28:29  profilanswer
 

oula ca me parle pas beaucoup :/ , je crois que j'arriverai jamais a modif ce script

n°1332370
smaragdus
whores, drugs & J.S. Bach
Posté le 26-03-2006 à 04:30:33  profilanswer
 

pef a écrit :

oula ca me parle pas beaucoup :/ , je crois que j'arriverai jamais a modif ce script


tu sais, tu as aussi le droit de lire la doc....

n°1332426
pef
Posté le 26-03-2006 à 13:09:45  profilanswer
 

oui j'ai lu, mais ne connaissant rien, c'est pas evident, bref je vais quand meme essayer :)

n°1333081
pef
Posté le 27-03-2006 à 19:50:20  profilanswer
 

pef a écrit :

bonjour,
 
sur mon site internet en création (http://www.skydivepamiers.fr/index.php) j'ai installé un script Meteo: http://www.asp-php.net/ressources/ [...] spx?id=340 , il marche mais il y a un probleme; le site qui fourni le flux xml ne marche que le matin et vers 15h cela ne renvoit que des "N/A" en guise de previsions.
 
sur le site d'ou vient le script, une personne me donne une solution pour eviter cela en modifiant un peu le script, mais ne connaissant rien en PHP, je suis un peu perdu.
 
voila ce que me dit cette personne:
 
 
Q:"pouvez vous me mettre sur la bonne voie ? je dois utiliser une base de donnee avec du PHP ? merci d'avance."  
 
R:"17/03/2006 de Didier
Base de donnée ou plus simplement un fichier dans lequel tu stockes le flux xml de weather :
1. charge le flux xml de weather dans une variable
2. regarde si l'image est en N/A
3a. si non : sauve le flux dans le fichier
3b. si oui charge le fichier dans ta variable
4. affiche la météo d'après ta variable.
 
---------------------
 
quelqu'un aurait une idée pour réaliser ces modification ?
 
Merci d'avance pour votre aide.


n°1333085
masklinn
í dag viðrar vel til loftárása
Posté le 27-03-2006 à 19:57:24  profilanswer
 

T'as pas songé une seconde à apprendre à coder en php?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 27-03-2006 à 19:57:24  profilanswer
 

n°1333106
pef
Posté le 27-03-2006 à 20:45:52  profilanswer
 

euh si tu veux j'ai deja pas mal a faire entre mon boulot (qui n'a rien a voir) et ce site que je fais pour aider mon club!
 
vraiment je n'ai pas le tmp d'apprendre un language.  
C'est fou quand meme, on a pas le droit de demander de l'aide ?

n°1333124
masklinn
í dag viðrar vel til loftárása
Posté le 27-03-2006 à 21:11:58  profilanswer
 

pef a écrit :

euh si tu veux j'ai deja pas mal a faire entre mon boulot (qui n'a rien a voir) et ce site que je fais pour aider mon club!
 
vraiment je n'ai pas le tmp d'apprendre un language.


J'vais chialer tiens, c'est trop triste comme histoire :sweat:  

pef a écrit :

C'est fou quand meme, on a pas le droit de demander de l'aide ?


Pas quand on a pas envie de faire le minimum de travail personnel requis.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1333132
pef
Posté le 27-03-2006 à 21:21:17  profilanswer
 

masklinn a écrit :

 
 
Pas quand on a pas envie de faire le minimum de travail personnel requis.


 
arf arretes, si tu savais les heures que je passes pour faire ce site... et toi tu es là a me faire des remarques, je trouve ce
comportement completement nul, laisses moi te le dire! tu n'as rien d'autre a faire que d'emmerder les autres ?

n°1333141
smaragdus
whores, drugs & J.S. Bach
Posté le 27-03-2006 à 21:29:23  profilanswer
 

pef a écrit :

arf arretes, si tu savais les heures que je passes pour faire ce site... et toi tu es là a me faire des remarques, je trouve ce
comportement completement nul, laisses moi te le dire! tu n'as rien d'autre a faire que d'emmerder les autres ?


 
Ici on aide les gens, on ne fait pas leur boulot à leur place. :sarcastic:  

n°1334264
pef
Posté le 28-03-2006 à 23:37:57  profilanswer
 

tu m'aides vachement là!

n°1334277
pef
Posté le 28-03-2006 à 23:45:06  profilanswer
 

pef a écrit :

bonjour,
 
sur mon site internet en création (http://www.skydivepamiers.fr/index.php) j'ai installé ce script Meteo:  
 

Citation :


<?
setlocale(LC_TIME, "fr_FR" ); // ou "fr"
 
$partner = "";
$ville = "FRXX0076"; $vname="Paris";
$jours = 4;
$url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&unit=s&dayf=".$jours;
 
// Conversion Fahrenheit->Celsius
function f2c($t) { return round(($t-32)*5/9); }
 
// Lecture d'un fichier XML
function lit_xml($chaine,$isFile,$item,$champs) {
   // on lit le fichier ou la chaîne
   if($isFile) $chaine = @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"" ));
 
// Extraction des icones, messages et du taux d'humidité
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];
}
 
?>
 
<STYLE type="text/css"><!--
   .fond { background-color:#669999 }
   .corps { background-color:#D8E9EC }
   .titre { color: #FFFFFF }
   .sstitre { color: #858586 }
--></STYLE>
 
<table class=fond>
   <tr><td class=titre><strong>METEO sur <?=$vname?></strong></td></tr>
 
   <? for($i=0;$i<$jours;$i++) { ?>
      <tr><td class=corps><table>
      <tr>
         <td colspan=3 class=sstitre><strong>
            <?=ucfirst(strftime("%A %d %B %Y",time()+$i*24*3600))?>
         </strong></td>
      </tr>
      <tr>
         <td>Max: <?=($xml["hi"][$i]=="N/A" )?"N/A":f2c($xml["hi"][$i])."°C"?></td>
         <td class=sstitre>JOUR</td>
         <td class=sstitre>NUIT</td>
      </tr>
      <tr>
         <td>Min: <?=($xml["low"][$i]=="N/A" )?"N/A":f2c($xml["low"][$i])."°C"?></td>
         <td rowspan=2><img src="img/<?=$xml["icond"][$i]?>.png"
            width=40 alt="<?=$xml["altd"][$i]?>"></td>
         <td rowspan=2><img src="img/<?=$xml["iconn"][$i]?>.png"
            width=40 alt="<?=$xml["altn"][$i]?>"></td>
      </tr>
      <tr>
         <td>H%: <?=$xml["hmid"][$i]?></td>
      </tr>
      </table></td></tr>
   <? } ?>
 
   <tr><td align=center class=corps>
      <a href="http://www.weather.com/?prod=xoap&par=<?=$partner?>"
         target="_blank"><IMG src="img/TWClogo_32px.png" border=0></a>
   </td></tr>
 
</table>


 
 
il marche impec, mais il y a un probleme;  
le site qui fourni le flux xml (weather.com) ne renvoit la prévision que le matin, et tous les jours vers 15h
cela ne renvoit que des "N/A" en guise de previsions.
 
par ailleurs, sur le site d'ou vient ce script, une personne me donne une solution pour eviter cela en modifiant  
un peu le script, mais ne connaissant rien en PHP, je suis un peu perdu.
 
voila ce que me dit cette personne:
 
 
faire une Base de donnée ou plus simplement un fichier dans lequel tu stockes le flux xml de weather :
1. charge le flux xml de weather dans une variable
2. regarde si l'image est en N/A
3a. si non : sauve le flux dans le fichier
3b. si oui charge le fichier dans ta variable
4. affiche la météo d'après ta variable.
 
---------------------
 
quelqu'un aurait une idée ou un debut d'idée pour réaliser ces modifications ?
 
Merci d'avance pour votre aide.


n°1334278
pef
Posté le 28-03-2006 à 23:46:27  profilanswer
 

pef a écrit :

bonjour,
 
sur mon site internet en création (http://www.skydivepamiers.fr/index.php) j'ai installé ce script Meteo:  
 

Code :
  1. <?
  2. setlocale(LC_TIME, "fr_FR" ); // ou "fr"
  3. $partner = "";
  4. $ville = "FRXX0076"; $vname="Paris";
  5. $jours = 4;
  6. $url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&unit=s&dayf=".$jours;
  7. // Conversion Fahrenheit->Celsius
  8. function f2c($t) { return round(($t-32)*5/9); }
  9. // Lecture d'un fichier XML
  10. function lit_xml($chaine,$isFile,$item,$champs) {
  11.    // on lit le fichier ou la chaîne
  12.    if($isFile) $chaine = @file_get_contents($chaine);
  13.    if($chaine) {
  14.       // on explode sur <item>
  15.       $tmp = preg_split("/</?".$item.">/",$chaine);
  16.       // pour chaque <item>
  17.       for($i=1;$i<sizeof($tmp);$i++)
  18.          // on lit les champs demandés <champ>
  19.          foreach($champs as $champ) {
  20.             $tmp2 = preg_split("/</?".$champ.">/",$tmp[$i]);
  21.             // on ajoute au tableau
  22.             $tmp3[$champ][] = trim(@$tmp2[1]);
  23.          }
  24.       // et on retourne le tableau
  25.       return @$tmp3;
  26.    }
  27. }
  28. // Extraction primaire
  29. $xml = lit_xml($url,true,"day d=.*",array("hi","low","part p="d"","part p="n"" ));
  30. // Extraction des icones, messages et du taux d'humidité
  31. for($i=0;$i<$jours;$i++) {
  32.    $tmp = preg_split("/</?icon>/",$xml["part p="d""][$i]);
  33.    $xml["icond"][$i] = $tmp[1];
  34.    $tmp = preg_split("/</?t>/",$xml["part p="d""][$i]);
  35.    $xml["altd"][$i] = $tmp[1];
  36.    $tmp = preg_split("/</?hmid>/",$xml["part p="d""][$i]);
  37.    $xml["hmid"][$i] = $tmp[1];
  38.    $tmp = preg_split("/</?icon>/",$xml["part p="n""][$i]);
  39.    $xml["iconn"][$i] = $tmp[1];
  40.    $tmp = preg_split("/</?t>/",$xml["part p="n""][$i]);
  41.    $xml["altn"][$i] = $tmp[1];
  42. }
  43. ?>
  44. <STYLE type="text/css"><!--
  45.    .fond { background-color:#669999 }
  46.    .corps { background-color:#D8E9EC }
  47.    .titre { color: #FFFFFF }
  48.    .sstitre { color: #858586 }
  49. --></STYLE>
  50. <table class=fond>
  51.    <tr><td class=titre><strong>METEO sur <?=$vname?></strong></td></tr>
  52.    <? for($i=0;$i<$jours;$i++) { ?>
  53.       <tr><td class=corps><table>
  54.       <tr>
  55.          <td colspan=3 class=sstitre><strong>
  56.             <?=ucfirst(strftime("%A %d %B %Y",time()+$i*24*3600))?>
  57.          </strong></td>
  58.       </tr>
  59.       <tr>
  60.          <td>Max: <?=($xml["hi"][$i]=="N/A" )?"N/A":f2c($xml["hi"][$i])."°C"?></td>
  61.          <td class=sstitre>JOUR</td>
  62.          <td class=sstitre>NUIT</td>
  63.       </tr>
  64.       <tr>
  65.          <td>Min: <?=($xml["low"][$i]=="N/A" )?"N/A":f2c($xml["low"][$i])."°C"?></td>
  66.          <td rowspan=2><img src="img/<?=$xml["icond"][$i]?>.png"
  67.             width=40 alt="<?=$xml["altd"][$i]?>"></td>
  68.          <td rowspan=2><img src="img/<?=$xml["iconn"][$i]?>.png"
  69.             width=40 alt="<?=$xml["altn"][$i]?>"></td>
  70.       </tr>
  71.       <tr>
  72.          <td>H%: <?=$xml["hmid"][$i]?></td>
  73.       </tr>
  74.       </table></td></tr>
  75.    <? } ?>
  76.    <tr><td align=center class=corps>
  77.       <a href="http://www.weather.com/?prod=xoap&par=<?=$partner?>"
  78.          target="_blank"><IMG src="img/TWClogo_32px.png" border=0></a>
  79.    </td></tr>
  80. </table>


 
 
il marche impec, mais il y a un probleme;  
le site qui fourni le flux xml (weather.com) ne renvoit la prévision que le matin, et tous les jours vers 15h
cela ne renvoit que des "N/A" en guise de previsions.
 
par ailleurs, sur le site d'ou vient ce script, une personne me donne une solution pour eviter cela en modifiant  
un peu le script, mais ne connaissant rien en PHP, je suis un peu perdu.
 
voila ce que me dit cette personne:
 
 
faire une Base de donnée ou plus simplement un fichier dans lequel tu stockes le flux xml de weather :
1. charge le flux xml de weather dans une variable
2. regarde si l'image est en N/A
3a. si non : sauve le flux dans le fichier
3b. si oui charge le fichier dans ta variable
4. affiche la météo d'après ta variable.
 
---------------------
 
quelqu'un aurait une idée ou un debut d'idée pour réaliser ces modifications ?
 
Merci d'avance pour votre aide.


n°1334283
masklinn
í dag viðrar vel til loftárása
Posté le 28-03-2006 à 23:59:26  profilanswer
 

Ca suffit :fou:
 
Tu te prends en main et tu bosses c'est tout, et arrête de te plaindre, on t'a pas forcé à faire ce site :fou:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1334288
nargy
Posté le 29-03-2006 à 00:09:06  profilanswer
 


// 1. charge le flux xml de weather dans une variable
$meteo=file_get_contents("weather.xml" );
// 2. regarde si l'image est en N/A
if($meteo!="N/A" )
// 3a. si non : sauve le flux dans le fichier
file_put_contents($meteo, "weather.save.xml" );
// 3b. si oui charge le fichier dans ta variable
else $meteo=file_get_contents("weather.save.xml" );
// 4. affiche la météo d'après ta variable.
$xml = lit_xml($url,true,"day d=.*",array("hi","low","part p="d"","part p="n"";));

[:dur]


Message édité par nargy le 29-03-2006 à 00:10:32
n°1334298
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 00:31:18  profilanswer
 

pef a écrit :

tu m'aides vachement là!


Je t'ai donné toutes les clefs pour résoudre ton problème, maintenant tu te prends par la main et tu bosses la doc comme un grand.

n°1334309
pef
Posté le 29-03-2006 à 01:04:37  profilanswer
 

desolé pour le flood ct pas voulu :/
 
merci nargy ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  modification Script météo

 

Sujets relatifs
Empecher de visualiser un code source de script PERLMettre la météo sur son site !!!
[JavaScript] Problème avec un petit scriptmodification d' un fichier serveur par un poste client
Executer une fonction d'un script en VBScriptHEEEELP - Faire un executable autonome a partir d'un script VBA
Script page administration et authentification PhpErreur script de temps en temps
Modification de données dans un tableau à l'aide d'une macro[Pascal] Traduire un script shell en pascal
Plus de sujets relatifs à : modification Script météo


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR