PHP4 - CONTROL D'AFFICHAGE DE LA MÉTÉO VIA LE WEBSERVICE DE WEATHER.COM
cs_LuckyLuck
Messages postés59Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention 5 juillet 2005
-
22 avril 2005 à 11:33
boscoauhunier
Messages postés6Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention18 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.
vad1
Messages postés17Date d'inscriptiondimanche 5 décembre 2004StatutMembreDerniè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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 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és17Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 9 septembre 2008 9 sept. 2008 à 15:54
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és17Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 9 septembre 2008 9 sept. 2008 à 14:28
// 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;
}
}
cs_spoonisback
Messages postés72Date d'inscriptionvendredi 14 mai 2004StatutMembreDerniè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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 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és72Date d'inscriptionvendredi 14 mai 2004StatutMembreDerniè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.
cs_AuGuy
Messages postés21Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention18 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és21Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention18 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és21Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention18 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
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és23Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention25 mars 2009 6 juil. 2006 à 02:42
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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 26 mai 2005 à 18:34
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és3Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention26 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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 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és369Date d'inscriptionsamedi 4 septembre 2004StatutMembreDernière intervention20 octobre 2013 26 avril 2005 à 07:53
Nickel coubis64 :)
10/10
cs_coubi64
Messages postés3Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention28 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és369Date d'inscriptionsamedi 4 septembre 2004StatutMembreDernière intervention20 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és193Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention18 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és11Date d'inscriptionlundi 22 juillet 2002StatutMembreDernière intervention23 avril 2005 23 avril 2005 à 19:39
hum c'est vraiment pas mal je met 8
cs_fabrice69
Messages postés1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 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és59Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention 5 juillet 2005 22 avril 2005 à 11:33
23 août 2009 à 18:30
http://www.villalespensees.fr/meteo_cannes/search_code_form.php
c'est free!!!
9 sept. 2008 à 20:57
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
9 sept. 2008 à 19:27
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]
9 sept. 2008 à 15:54
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
9 sept. 2008 à 14:28
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 ?
9 sept. 2008 à 14:03
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
9 sept. 2008 à 13:46
remplace les "<%=" par "<?php echo"
9 sept. 2008 à 13:44
L'adresse ou tu publie est correcte, le script marche, tu as juste oublier d'uploader les photos.
9 sept. 2008 à 12:51
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
9 nov. 2007 à 13:06
http://www.spoonisback.tonsite.biz/TEMP/Images/
Il faut les placer dans celui-ci
Cordialement
Romelard Fabrice
9 nov. 2007 à 12:58
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
9 nov. 2007 à 11:54
Il faut renomer les images de 1 à 9 en 01 à 09, ou inversement (je ne me souiens plus).
Cordialement
Romelard Fabrice
9 nov. 2007 à 11:47
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
16 nov. 2006 à 09:37
il faut les renomé en 0 a 9.png sinon il affiche un lien image cassé
3 nov. 2006 à 11:10
3 nov. 2006 à 10:56
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 -->
6 juil. 2006 à 03:09
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 :(
6 juil. 2006 à 02:42
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
26 mai 2005 à 18:34
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.
26 mai 2005 à 17:44
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
30 avril 2005 à 22:50
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).
26 avril 2005 à 07:53
10/10
25 avril 2005 à 17:30
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 ;.)
25 avril 2005 à 15:33
Pas moyen d'avoir l'impression écran des dates en francais ???
24 avril 2005 à 16:50
Dis moi c'est a toi le site http://fromelard.free.fr? Car j'adore les leçons.... lol
23 avril 2005 à 19:39
22 avril 2005 à 12:16
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.
22 avril 2005 à 11:33