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

cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005 - 22 avril 2005 à 11:33
boscoauhunier Messages postés 6 Date d'inscription lundi 10 novembre 2003 Statut Membre Dernière intervention 18 mars 2010 - 23 août 2009 à 18:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30899-php4-control-d-affichage-de-la-meteo-via-le-webservice-de-weather-com

boscoauhunier Messages postés 6 Date d'inscription lundi 10 novembre 2003 Statut Membre Dernière intervention 18 mars 2010
23 août 2009 à 18:30
Pour ceux qui désireraient trouver les codes des villes, une base est à votre disposition à cet url
http://www.villalespensees.fr/meteo_cannes/search_code_form.php

c'est free!!!
vad1 Messages postés 17 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 9 septembre 2008
9 sept. 2008 à 20:57
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
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
9 sept. 2008 à 19:27
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]
vad1 Messages postés 17 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 9 septembre 2008
9 sept. 2008 à 15:54
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
vad1 Messages postés 17 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 9 septembre 2008
9 sept. 2008 à 14:28
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 ?
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
9 sept. 2008 à 14:03
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
cs_spoonisback Messages postés 72 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 5 février 2010
9 sept. 2008 à 13:46
Juste un petit truc à propos de cette source,
remplace les "<%=" par "<?php echo"
cs_spoonisback Messages postés 72 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 5 février 2010
9 sept. 2008 à 13:44
Salut
L'adresse ou tu publie est correcte, le script marche, tu as juste oublier d'uploader les photos.
vad1 Messages postés 17 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 9 septembre 2008
9 sept. 2008 à 12:51
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
$tmp = preg_split("/<\/?".$item.">/",$chaine);
// pour chaque
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>

METEO,

<? for($i=0;$i<$jours;$i++) { ?>
----
<table>
----,
<?=ucfirst(strftime(\"%A %d %B %Y\",time()+$i*24*3600))?>
</td>

----

Max: <?=($xml["hi"][$i]=="N/A")?"N/A":f2c($xml["hi"][$i])."°C"?>,
JOUR,
NUIT,

----

Min: <?=($xml["low"][$i]=="N/A")?"N/A":f2c($xml["low"][$i])."°C"?>,
.png" width=40>,
.png" width=40>,

----

H%: <?=$xml["hmid"][$i]?>
</td></tr>
<? } ?>

</table>

Publier sur http://www.paris-france-paramoteur.com/w3.php
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
9 nov. 2007 à 13:06
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
cs_spoonisback Messages postés 72 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 5 février 2010
9 nov. 2007 à 12:58
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
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
9 nov. 2007 à 11:54
Bonjour,
Il faut renomer les images de 1 à 9 en 01 à 09, ou inversement (je ne me souiens plus).
Cordialement
Romelard Fabrice
cs_spoonisback Messages postés 72 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 5 février 2010
9 nov. 2007 à 11:47
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
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013
16 nov. 2006 à 09:37
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é
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013
3 nov. 2006 à 11:10
double post desolé il faut virer name='sa' c'est un residu d'un autre formulaire
cs_AuGuy Messages postés 21 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 18 décembre 2013
3 nov. 2006 à 10:56
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'>



</FORM>
<!--search -->
lOeil Messages postés 23 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 mars 2009
6 juil. 2006 à 03:09
$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
$tmp = preg_split("/<\/?".$item."?>/",$chaine);


//----------- C'est ici qu'il faut changer ---------------
// pour chaque
$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 :(
lOeil Messages postés 23 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 mars 2009
6 juil. 2006 à 02:42
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
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
26 mai 2005 à 18:34
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.
okaoma Messages postés 3 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 17:44
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
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
30 avril 2005 à 22:50
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).
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
26 avril 2005 à 07:53
Nickel coubis64 :)
10/10
cs_coubi64 Messages postés 3 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 28 novembre 2007
25 avril 2005 à 17:30
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 ;.)
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
25 avril 2005 à 15:33
:) j'ai mis 9

Pas moyen d'avoir l'impression écran des dates en francais ???
stanilou Messages postés 193 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 18 novembre 2009
24 avril 2005 à 16:50
Ca m'as vraiment bien...
Dis moi c'est a toi le site http://fromelard.free.fr? Car j'adore les leçons.... lol
kipeur Messages postés 11 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 23 avril 2005
23 avril 2005 à 19:39
hum c'est vraiment pas mal je met 8
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
22 avril 2005 à 12:16
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.
cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005
22 avril 2005 à 11:33
Pas de zip...
Rejoignez-nous