script méteo problème à l'execution

script méteo problème à l'execution - PHP - Programmation

Marsh Posté le 10-04-2006 à 08:43:15    

Bonjour @ tous,
 
Eh oui c'est encore moi :p. Cette fois, j'ai fais ce script pour récupérer la météo sur le site de météo france, et mon problème est que très souvent lors de la première execution, il ne m'affiche rien, et sinon il m'affiche que des warning (le reste du temps il fonctionne très bien :p.
Pouvez-vous me dire s'il y a des choses à changer ?
Voici mon code :

Code :
  1. <? 
  2. //Fonction de recherche
  3. function Search($debut, $recher, $fin, $texte, $offset){
  4. @preg_match("/($debut)($recher)($fin)/is", $texte, $valeur);
  5. return $valeur[$offset];
  6. }
  7. //Récupération de la page web
  8. $page_web = 'http://www.meteofrance.com/FR/mameteo/prevVille.jsp?LIEUID=FR77393';
  9. $page = fopen ($page_web, 'r')
  10.   or die('Impossible d\'ouvrir la page '.$page_web.'.');
  11. $contenu_html = '';
  12. while (!feof ($page)) {
  13.   $contenu_html .= fgets($page, 4096);
  14. }
  15. //Jour et heure
  16. $jour = Search("<td align=\"right\" class=\"txt11\"><b><\/b> Heure locale :<\/td><td width=\"40\" align=\"center\" class=\"txt11\">",".*","h<\/td><td width=\"40\" align=\"center\" class=\"txt11\">", $contenu_html, 2);
  17. $jour_def =explode ("<",$jour);
  18. //Temps
  19. $temps = Search("<td width=\"75\"><a href=\"#\" onMouseOver=\"showAlt\(\')($jour_def[0])(:)(.*)(\', false\)\" onMouseOut=\"hideAlt\(\)\"><img src=\"\/img\/picto\/gd\/mf\/","p1?[0-9]","\.gif\" border=\"0\"><\/a><\/td>", $contenu_html, 6);
  20. //Température
  21. $temp = Search("<tr class=\"bleuTclair\"><td class=\"txt11\">Temp&eacute;rature \(°C\)<\/td><td width=\"40\" align=\"center\" class=\"txt11\">","[0-9]?[0-9]","&deg;<\/td>", $contenu_html, 2);
  22. //Direction du vent
  23. $direc = Search("<tr bgcolor=\"#FFFFFF\"><td class=\"txt11\">Direction du vent<\/td><td width=\"40\" align=\"center\" class=\"txt11\"><img src=\"\/img\/picto\/atm\/","v[enosv][enos]?[eo]?","\.gif\">", $contenu_html, 2);
  24. //Vitesse du vent
  25. $vites = Search("<tr class=\"bleuTclair\"><td class=\"txt11\">Vitesse du vent \(km\/h\)<\/td><td width=\"40\" align=\"center\" class=\"txt11\">","[0-9]?[0-9]","<\/td>", $contenu_html, 2);
  26. fclose($page);
  27. ?>
  28. <table background="../images/nuage.gif" width="100%" height="80px" align="center" cellpadding="0" cellspacing="0">
  29. <?
  30. echo "<tr><td class=\"Meteo\" colspan=\"2\" class=\"Style12\" align=\"center\" valign=\"middle\">".$jour_def[0]." à Fontenay Trésigny<td></tr>";
  31. echo "<tr><td class=\"Meteo\" align=\"center\" valign=\"middle\"><center><img src=\"../images/".$temps.".gif\" width=\"20\" height=\"20\"></center></div></td>";
  32. echo "<td class=\"Meteo\" class=\"Style12\" align=\"center\" valign=\"middle\">".$temp."°C.</td></tr>";
  33. echo "<tr><td class=\"Meteo\" align=\"center\" valign=\"middle\"><img src=\"../images/".$direc.".gif\"></td>";
  34. echo "<td class=\"Meteo\" class=\"Style12\" align=\"center\" valign=\"middle\">".$vites." km/h</td></tr>";
  35. ?>
  36. </table>


Merci @ tous ;)


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 10-04-2006 à 08:43:15   

Reply

Marsh Posté le 10-04-2006 à 09:29:37    

La ligne du warning?

Reply

Marsh Posté le 10-04-2006 à 10:17:27    

Donc pour les lignes Warnbing je ne peux pas te les avoir tout de suite, car j'essai sur free il pour l'instant sois cela fonctionne soit il ne m'affiche rien. Vu que je suis au bouleau, je ne peux pas recup les lignes warning. Je les mettrait tout à l'heure vers 16h a tte ;)

Reply

Marsh Posté le 10-04-2006 à 10:23:01    

Mais les warning je crois qu'ils osont du au fait qu'il n'arrive pas sur le moment à lire la page chez meteo france ! (maisce ne sont que mes hypothèses)

Reply

Marsh Posté le 10-04-2006 à 15:41:37    

Volà donc les erreur que j'ai : en fait ce n'est pas des Warning mais des Notices :
Notice: Undefined offset: 2 in d:\mon dossier\mon site\php\pages\meteo.php on line 5
 
Notice: Undefined offset: 6 in d:\mon dossier\mon site\php\pages\meteo.php on line 5
 
Notice: Undefined offset: 2 in d:\mon dossier\mon site\php\pages\meteo.php on line 5
 
Notice: Undefined offset: 2 in d:\mon dossier\mon site\php\pages\meteo.php on line 5
 
Notice: Undefined offset: 2 in d:\mon dossier\mon site\php\pages\meteo.php on line 5


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Marsh Posté le 10-04-2006 à 15:52:02    

C'est parceque ça:
  @preg_match("/($debut)($recher)($fin)/is", $texte, $valeur);
Ne trouve pas les valeurs que tu demande.
Je ne me souviens plus ce qu'est 's' dans une preg, mais si c'est autre chose qu'une recherche de chaîne c'est normal que ça marche pas.
Si c'est une recherche de chaîne, utilise une fonction strcmp ou strstr...
Enfin, vérifie que tu recherche quelquechose qui existe dans la page téléchargée.

Reply

Marsh Posté le 10-04-2006 à 15:53:45    

ha ben si, c'est une preg de 3kilomètres de long; trouve un truc plus simple, moi je te débuggue pas ça.
ya du foutage de g.

Reply

Marsh Posté le 10-04-2006 à 16:08:37    

oki @++
merci


---------------
Tu sais pourquoi il y a des guerre dans le monde ?   Parce que le monde est né sans l'homme et finira sans lui ...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed