Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 13 Mar 2005 10:43:50

cedjo
Humain(e) libre
 
Lieu: Ecublens - VD
Date d'inscription: 18 Nov 2004
Messages: 40
Site web

[PHP] Récupérer la météo de weather.com

Pour mon site web je voulais créer un module de météo, et je n'avais pas envie de décortiquer les existants pour xoops ou nuke... Pour comprendre comment ca fonctionne smile

Alors je me suis basé sur ce document Fetching Weather Data from weather.com

Pour mon exemple j'utilise Lausanne smile

Tout d'abord il nous faut l'id de la ville souhaité, il faut alors faire une requête vers http://xoap.weather.com/search/search?where=lausanne pour avoir:

Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<search ver="2.0">
  <loc id="SZXX0017" type="1">Lausanne, Switzerland</loc>
</search>

le tag <loc></loc> nous donne le nom de la ville et id="SZXX0017" donne l'id a utiliser plus tard.
En ayant mis le contenu de ce fichier xml dans la variable $raw il suffit de

Code:

preg_match_all("/id="(.*)" /i",$raw,$tab);
foreach ($tab[1] as $key => $value) {
    $city[$key]["code"]=$value;
}
preg_match_all("/">(.*)<//i",$raw,$tab);
foreach ($tab[1] as $key => $value) {
    $city[$key]["text"]=$value;
}

Ceci donne un tableau $city dans lequel vous avez toutes les villes trouvées (paris retourne 14 occurences)

ensuite il suffit de faire une requête de ce type avec l'id trouvée plus haut:  SZXX0017

http://xoap.weather.com/weather/local/S … amp;unit=m

Pour avoir un fichier xml avec toutes les infos de météo.

Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<weather ver="2.0">
  <head>
    <locale>en_US</locale>
    <form>MEDIUM</form>
    <ut>C</ut>                        temperature
    <ud>km</ud>                        distance 
    <us>km/h</us>                    vitesse
    <up>mb</up>                        pression
    <ur>mm</ur>                        précipitation
  </head>
  <loc id="SZXX0017">
    <dnam>Lausanne, Switzerland</dnam>
    <tm>10:13 AM</tm>                        temps UTC
    <lat>46.5</lat>                        latitude
    <lon>6.67</lon>                        longitude
    <sunr>6:50 AM</sunr>                        lever soleil
    <suns>6:36 PM</suns>                        coucher soleil
    <zone>1</zone>              
  </loc>
  <cc>
    <lsup>3/13/05 9:50 AM Local Time</lsup>
    <obst>Geneva, Switzerland</obst>                point d'observation
    <tmp>4</tmp>                                         tempearature
    <flik>0</flik>                                            temperature ressentie
    <t>Partly Cloudy</t>                                 ciel
    <icon>30</icon>                                       numero d'icone
    <bar>
      <r>1,012.9</r>                                       pression
      <d>steady</d>                                       tendance
    </bar>
    <wind>                                               vent
      <s>19</s>                                       vitesse
      <gust>N/A</gust>
      <d>50</d>                                       cap
      <t>NE</t>                                        direction
    </wind>
    <hmid>61</hmid>                              humidité
    <vis>10.0</vis>                                 visibilité
    <uv>
      <i>1</i>                                          indice uv
      <t>Low</t>                                      protection uv
    </uv>
    <dewp>-3</dewp>                             point de rosée
    <moon>                                
      <icon>3</icon>                                icone lune
      <t>Waxing Crescent</t>                   phase lune
    </moon>
  </cc>
</weather>

En supposant que le fichier est stocké dans $raw on pourra extraire l'humidité par exemple avec:

Code:

preg_match("/<hmid>(.*)</hmid>/i",$raw,$humidity);
echo "Humidité:".$humidity[1]."%";

Pour des tag comme <t></t> il faut utiliser preg_match_all

Pour les icônes du temps ils sont là:
http://image.weather.com/web/common/wxicons/52/XX.gif où XX est le numero de l'icone de 1 à 47 smile

Voilà...

Hors ligne

 

#2 13 Mar 2005 11:53:38

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: [PHP] Récupérer la météo de weather.com

Une question:
Que vient faire un dév de site web sur un site de dév Linux ?

Pour du php et autres, il y a des sites spécialisés, comme:
phpdebutant

enfin, ce que j'en dis, on va encore trouver que j'exagère wink
@+


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#3 13 Mar 2005 11:59:23

Swebian
Invité
 

Re: [PHP] Récupérer la météo de weather.com

Je trouve que son exemple à sa place ici. On est bien dans une catégorie développement non ?

Son script est intéressant et puis son site parle de Linux ! Et rapelle toi, tu as aussi fait de la pub pour ton forum en php !

:cheesy:

 

#4 13 Mar 2005 12:21:28

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: [PHP] Récupérer la météo de weather.com

Tant que c'est pas de l'ASP   :cheesy:   :mrgreen:



Plus sérieusement, même pour de l'ASP je suis ouvert et prêt à aider.  8-)


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#5 13 Mar 2005 12:25:04

cedjo
Humain(e) libre
 
Lieu: Ecublens - VD
Date d'inscription: 18 Nov 2004
Messages: 40
Site web

Re: [PHP] Récupérer la météo de weather.com

Phoenix... La partie PHP est anectodique, la page dont je me suis inspiré parle de Python, alors c'est plus pour partager le fait que c'est faisable (et le moyen d'obtenir cette info) que de faire du dev PHP (car effectivement mon post sur d'autres sites aura plus de lecteurs si c'était la reconnaissance que je cherchait). En outre dans cette branche du forum il y a des post C,Ada,Ruby, etc... Donc il ne m'a pas paru deplacé de mettre ceci ici, car alors à ce moment il ne faut plus parler de Debian (nous ne sommes pas tous à utiliser Debian), Mandrake (ce n'est pas mandrakesoft.com) etc... Parlons alors juste de linux (donc de rien si ce n'est pas par des exemples concerts).

Mais pour faire plaisir j'enlève la référence à mon site, je ne le développe que pour mon plaisir et pour améliorer mes connaissances car les sources ne sont pas dispos (développement un peu trop bancale pour que je me permette de le publier). Tu pourras noter dans la partie ftp je partage d'autre infos (drivers wifi, ndiswrapper) [URL=ftp://feelfree.homelinux.com/pub/wifi]là[/URL] qui sont relatif à un autre [URL=http://www.swisslinux.org/forums/ftopic321.php]post[/URL] sur le wifi...

PHP peut aussi servir à faire des applications [URL=http://fr.php.net/manual/fr/features.commandline.php]autres[/URL] que web... Comme perl python et d'autre.

Hors ligne

 

Pied de page des forums

Powered by FluxBB