Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PHP4 - CONTROL D'AFFICHAGE DE LA MÉTÉO VIA LE WEBSERVICE DE WEATHER.COM


Information sur la source

Catégorie :Divers Niveau : Initié Date de création : 21/04/2005 Date de mise à jour : 21/04/2005 21:12:29 Vu : 10 619

Note :
8,14 / 10 - par 7 personnes
8,14 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Suite à la lecture d'un article traîtant de l'utilisation de source XML en .NET:
- http://www.asp-php.net/tutorial/asp.net/index.php?page=5

Et après le développement d'un projet .NET afin de mettre en pratique ces articles en ASP.NET :
- http://www.asp-php.net/scripts/asp.net/weathercontrol.php
- http://www.aspfr.com/code.aspx?ID=30897

Je me suis demandé pourquoi ne pas tenter la même chose en PHP4 (en simultané de Didier (ASP-PHP)), nous avons tous les deux développé notre version permettant de faire la même chose que la version .NET disponible plus haut.

Voila donc ma version de ce développement qui est sans doute moins poussée techniquement que celle de Didier.

Vous pouvez d'ailleurs retrouver la sienne ici :
- http://www.asp-php.net/ressources/bouts_de_code.php?codid=340


 

Source

  • // Tout est dans le ZIP
  • // Celui-ci n'a pas pu être uploadé sur ce site, voila donc l'URL qui vous permettra de le télécharger.
  • // Vous pourrez donc le télécharger à l'adresse suivante :
  • // - http://fromelard.free.fr/Scripts/ASPNET_WeatherControl/PHPWeatherModule.zip
// Tout est dans le ZIP
// Celui-ci n'a pas pu être uploadé sur ce site, voila donc l'URL qui vous permettra de le télécharger.
// Vous pourrez donc le télécharger à l'adresse suivante :
//      - http://fromelard.free.fr/Scripts/ASPNET_WeatherControl/PHPWeatherModule.zip

Conclusion

Bon coding

Romelard Fabrice (Alias F___)

 

Historique

21 avril 2005 21:12:29 :
Modification de la source pour intégrer le lincesing de Weather.com

Commentaires et avis

signaler à un administrateur
Commentaire de LuckyLuck le 22/04/2005 11:33:48

Pas de zip...

signaler à un administrateur
Commentaire de fabrice69 le 22/04/2005 12:16:25 administrateur CS

Comme je l'ai pourtant écrit, mais vous deviez être trop préssé pour lire la description, le zip est trop gros pour être uploadé sur ce site.

Weather.com fourni avec son SDK l'ensemble des images permettant d'afficher les icones de la météo. Donc le zip en question intégrant ces images, il faut près de 1 Mo et donc ne peut pas être remonté ici. C'est la raison pour laquelle j'ai placé le lien pour télécharger directement ce fichier.

En espérant avoir répondu à votre attente.
Romelard Fabrice.

signaler à un administrateur
Commentaire de kipeur le 23/04/2005 19:39:07

hum c'est vraiment pas mal je met 8

signaler à un administrateur
Commentaire de stanilou le 24/04/2005 16:50:39

Ca m'as vraiment bien...
Dis moi c'est a toi le site http://fromelard.free.fr? Car j'adore les leçons.... lol

signaler à un administrateur
Commentaire de LaurentKOogar le 25/04/2005 15:33:51

:) j'ai mis 9

Pas moyen d'avoir l'impression écran des dates en francais ???


signaler à un administrateur
Commentaire de coubi64 le 25/04/2005 17:30:43

Très bon module!

Juste un souci:

Faut changer le "setlocale(LC_TIME, "fr");"

en

"setlocale (LC_TIME, "fr_FR");"

pour que la locale FR soit prise en compte ;.)

signaler à un administrateur
Commentaire de LaurentKOogar le 26/04/2005 07:53:17

Nickel coubis64 :)
10/10

signaler à un administrateur
Commentaire de fabrice69 le 30/04/2005 22:50:46 administrateur CS

Pour le Set Local, cela dépend du serveur ou est placé le module.
Sur certains cela sera Fr_fr (free, online), sur d'autre simplement fr suffit (cas de ma machine de dev par exemple Windows XP EasyPhp).

Romelard Fabrice.

PS: Merci pour les notes, mais il faut remercier plus Didier que moi (mon module est moins performant que le sien).
PS2: oui, j'ai installé le module sur mon site http://fromelard.free.fr (en bas à gauche).

signaler à un administrateur
Commentaire de okaoma le 26/05/2005 17:44:14

Bonjour,
tout d'abord felicitation pour ton script : il m'a enormement aidé pour la création d'un executable devellopé sous flah et php. l'application se pose sur le bureau et propose la meteo pour les 5 prochain jour.
Donc merci.
Ensuite je voudrai connaitre les conditions d'utilisation de ce flux d'information provenant de "http://xoap.weather.com" : affichage de leur logo ou autre.

voila

signaler à un administrateur
Commentaire de fabrice69 le 26/05/2005 18:34:46 administrateur CS

Tu as le texte ici :
http://www.asp-php.net/scripts/asp.net/weathercontrol.php?page=2

Il faut se référencer sur le site de Weather dont le lien est au bas de la page.

Romelard Fabrice.

signaler à un administrateur
Commentaire de lOeil le 06/07/2006 02:42:11

Bonjour, le script me pose un problème

h**p://xoap.weather.com/weather/local/FRXX0274?cc=*&unit=s&prod=xoap&par=XXXXXXXXXX&key=XXXXXXXXXXXXXX&dayf=2

je met 2 jours, cependant on est le 06/06/06 à 02h32 et les jours qu'il m'affiche sont le 05/06/06 et le 06/06/06

Du coup le script php me décale d'un jour.
Ne pourrait-on pas afficher un jour de plus et faire un test
<day d="0" t="Wednesday" dt="Jul 5">
on test si pour d=0, on est bien un mercredi, ou alors ce qui serait plus simple c'est de chercher ou t="notre jour" et de prendre ces info la.

Je n'arrive pas à modifier ca seul, car les fontions utilisées sont assez complexes.
Merci de m'éclairer.

PS: dsl j'ai posté sur asp-php aussi mais je travaille en php ;p

signaler à un administrateur
Commentaire de lOeil le 06/07/2006 03:09:11

$xml = lit_xml_with_attr($xmlsource,"day",array("hi","low"));

C'est cette fonction qu'il faut changer car apparement il ne faut pas se contenter de travailler avec "day"
mais c'est la ou je bloque car je n'arrive pas à modifier cette fonction pour travailler avec les t="jour"

je verrai bien un algo de ce type :


function lit_xml_with_attr($fichier,$item,$champs)
{
// on lit le fichier
if($chaine = @implode("",@file($fichier)))
{
// on explode sur <item>
$tmp = preg_split("/<\/?".$item."?>/",$chaine);
    

//----------- C'est ici qu'il faut changer ---------------
// pour chaque <item>
$fin = sizeof($tmp)-2; // pour gérer le jour en trop
for($i=0;$i<$fin;$i+=1)
{
/*si $i=0
si (valeur t="" == jour)
{
foreach($champs as $champ)
{
$tmp2 = preg_split("/<\/?".$champ."?>/",$tmp[$i]);
// on ajoute au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
$fin++;
}
//on ne fait rien du coup dans le cas contraire: cela devrait supprimer le 1er jour
else
on fait le script d'origine*/
// on lit les champs demandés <champ>
foreach($champs as $champ)
{
$tmp2 = preg_split("/<\/?".$champ."?>/",$tmp[$i]);
// on ajoute au tableau
$tmp3[$i-1][] = @$tmp2[1];
}
}
// et on retourne le tableau
return $tmp3;
}


si (valeur t="" == jour) ca je ne sais pas comment de faire :(

signaler à un administrateur
Commentaire de AuGuy le 03/11/2006 10:56:44

excelent code bravo je ne suis pas trop competent pour noter la qualité du code mais pour la pratique 10 :-)
je les intégré sur mon site et il fonctionne trés bien donc merci

j'ai tenté d'ajouté un "menu" de selection ville mais je n'y suis pas arrivé donc j'ai ajouté un petit formulaire pour permettre aux visiteurs de consulter la meteo de leur region sur le site de fr.weather.com dans une autre fenetre. Pour ceux que sa interresse je le met

   <!-- search -->
<FORM ACTION="http://fr.weather.com/search/search?" METHOD="post" NAME="whatwhere" target='_blank'>
<input TYPE="TEXT" onFocus="this.value='';" NAME="where" SIZE="19" VALUE="Votre région...">
<INPUT TYPE="hidden" NAME="what" VALUE="">
<INPUT type='submit' name='sa' value='Go' BORDER="0" ALT="OK" VLAIGN="0">
</FORM>
  <!--search -->

signaler à un administrateur
Commentaire de AuGuy le 03/11/2006 11:10:50

double post desolé il faut virer name='sa' c'est un residu d'un autre formulaire

signaler à un administrateur
Commentaire de AuGuy le 16/11/2006 09:37:16

je viens d'observer un petit bug pas au niveau du code mais par rapport au nom des iconnes de 00.png a "surement" 09.png.
il faut les renomé en 0 a 9.png sinon il affiche un lien image cassé

signaler à un administrateur
Commentaire de spoonisback le 09/11/2007 11:47:53

Bonjour,
je viens de tester ce code (les deux versions) mais dans chacun d'eux, j'ai un problème d'affichage des icones :
le code source généré me met bien src="/Images/xx.png" mais il refus d'afficher l'image. j'ai rajouter un attribut alt pour ces icones, et il m'affiche le texte dans alt, donc il ne trouve pas les images, pourtant elle y sont bien, et le code fonctionne !!
Si quelqu'un a une idée...
Merci d'avance.

pour voir coment il faiis chez moi : http://www.spoonisback.tonsite.biz/TEMP/index.php3

signaler à un administrateur
Commentaire de fabrice69 le 09/11/2007 11:54:41 administrateur CS

Bonjour,
Il faut renomer les images de 1 à 9 en 01 à 09, ou inversement (je ne me souiens plus).
Cordialement
Romelard Fabrice

signaler à un administrateur
Commentaire de spoonisback le 09/11/2007 12:58:43

Re
En fait je l'ai deja fais, j'ai renommer (après que j'ai vu que ca marchais po et vu le message de AuGuy) les 01 à 09 en 1 à 9, et hélas, cela ne marche toujours pas...
enfin, si vous voyez la solution (cf source générée dans le lien précedent)..
merci

signaler à un administrateur
Commentaire de fabrice69 le 09/11/2007 13:06:39 administrateur CS

Les images ne sont pas dans le répertoire nécessaire :
http://www.spoonisback.tonsite.biz/TEMP/Images/

Il faut les placer dans celui-ci

Cordialement
Romelard Fabrice

signaler à un administrateur
Commentaire de vad1 le 09/09/2008 12:51:29

Bonjour,

Je suis désolé de vous importuner, je ne suis pas du tout un codeur, je bricole...

Y aurait-il ici quelqu'un d'assez sympa pour me dire ou est mon erreur dans ce code :

<?
//--------------------------------------------------------------------------
//   PHPWeatherControl
//   Développé par Romelard Fabrice
//   Disponible sur r l'adresse :
//       http://www.asp-php.net/ressources/bouts_de_code.php?codid=340
//--------------------------------------------------------------------------

setlocale(LC_TIME, "fr");

$ville = "FRXX0076"; // Paris
$jours = 4;
//$url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&unit=s&dayf=".$jours;

$url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&dayf=5&link=xoap&prod=xoap&par=1071853944&key=ab28799e3bfc0ce3";


// 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 et de l'humidité
for($i=0;$i<$jours;$i++) {
   $tmp = preg_split("/<\/?icon>/",$xml["part p=\"d\""][$i]);
   $xml["icond"][$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];
}

?>

<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</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="./Images/<?=$xml["icond"][$i]?>.png" width=40></td>
         <td rowspan=2><img src="./Images/<?=$xml["iconn"][$i]?>.png" width=40></td>
      </tr>
      <tr>
         <td>H%: <?=$xml["hmid"][$i]?></td>
      </tr>
      </table></td></tr>
   <? } ?>

</table>

Publier sur http://www.paris-france-paramoteur.com/w3.php

signaler à un administrateur
Commentaire de spoonisback le 09/09/2008 13:44:57

Salut
L'adresse ou tu publie est correcte, le script marche, tu as juste oublier d'uploader les photos.

signaler à un administrateur
Commentaire de spoonisback le 09/09/2008 13:46:01

Juste un petit truc à propos de cette source,
remplace les "<%=" par "<?php echo"

signaler à un administrateur
Commentaire de fabrice69 le 09/09/2008 14:03:47 administrateur CS

Bonjour,
Tout est expliqué ici :
- http://www.asp-php.net/scripts/asp.net/weathercontrol.php?numsg=135113&resum=no#tch
Il s'agit d'un changement dans le format obligatoire du WebService de Weather.

Romelard Fabrice

signaler à un administrateur
Commentaire de vad1 le 09/09/2008 14:28:58

Merci pour réponse rapide. Mais les 48 photos sont sur mon serveur =>
http://www.paris-france-paramoteur.com/images/0.png => images/47.png

Mais les températures restent désespérement  sur => Max: -18°C Min: -18°C et chez vous qu'affichent les température ?

signaler à un administrateur
Commentaire de vad1 le 09/09/2008 15:54:02

SVP, je suis plus qu'un ane !!! cela fait plusieurs semaines que j'essaye de mettre sur mon site votre tableau weather http://fromelard.free.fr/Scripts/ASPNET_WeatherControl/Resultat.jpg

Mais rien n'y fais, même pas avec la nouvelle adresse du webservice, voici mon code :

<?
//--------------------------------------------------------------------------
//   PHPWeatherControl
//   Développé par Romelard Fabrice
//   Disponible sur r l'adresse :
//       http://www.asp-php.net/ressources/bouts_de_code.php?codid=340
//--------------------------------------------------------------------------

setlocale(LC_TIME, "fr");

$ville = "FRXX0076"; // Paris
$jours = 4;
//$url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&unit=s&dayf=".$jours;
$url = "http://xoap.weather.com/weather/local/".$ville."?cc=*&dayf=5&link=xoap&prod=xoap&par=1071853944&key=ab28799e3bfc0ce3";
--------------------------

Auriez-vous la gentillesse de m'envoyer vos fichier php originaux, ceux qui me permettros d'avoir en fin le bon tableau... à cette adresse http://www.paris-france-paramoteur.com/w3.php

Vadim
ffpn@free.fr

signaler à un administrateur
Commentaire de fabrice69 le 09/09/2008 19:27:16 administrateur CS

Si vous n'êtes pas codeur pourquoi vous acharner à vouloir prendre ce code ?
Vou pouvez directement prendre le JS de ce site qui fait tout pour vous :
- http://www.patelins.info/meteo/pays/69-France.html
Vous n'avez qu'é sélectionner votre ville et prendre le JS en résultat.

Le code est bien plus puissant et au moins vous n'avez pas de soucis de maintenance.
Romelard Fabrice [MVP]

signaler à un administrateur
Commentaire de vad1 le 09/09/2008 20:57:50

Longue vie à http://www.patelins.info qui par ailleurs monnaie le service gratuit de Weather.com, mais franchement je m'en moque.

Je voudrais juste pouvoir me servir d'un service gratuit, grâce à la mise à disposition des fichiers php tout « mâchés » (pour le nul que je suis) de la part d'un codeur sympa et non d'un js dont je ne sais pas vraiment ce qu'il y a dedans.  est-ce que cette réponse vous convient ? Si oui je veux bien recevoir les fichiers ou pourquoi pas les tutots à cette adresse ffpn@free.fr, par avance merci pour votre compréhension. Vadim

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.