meteo_couv.gif Pour un projet, j'avais besoin d'une API me donnant la météo.

Pas facile de trouver une API simple, sans fioriture, et donc sans besoin de parser, puis filtrer à grand coups d'expressions régulières !!

Je suis tombé sur une API non officielle de Google qui permet de le faire : http://www.google.com/ig/api?weather=maville

Lors de la récupération avec SimpleXml, le flux n'est pas en utf-8. Donc la classe n'arrive pas à récupérer le contenu.

En continuant mes recherches, je suis tombé sur l'ajout d'un paramèter de langue : "hl=" qui permet de spécifier un encodage, ou une langue, mais pas les deux cumulés.

Donc, soit on ajoute "&hl=fr" à l'url et on obtient le résultat en français mais pas en utf-8; Soit on ajoute "&hl=utf8", et on obtient le résultat en UTF8 mais pas en français.

L'astuce consiste donc, pour cumuler les deux, à passer par d'autre fonctions :

$xml = simplexml_load_string(utf8_encode(file_get_contents(http://www.google.com/ig/api?weather=lille&hl=fr")));

on va récupérer notre flux par la fonction file_get_contents, puis l'encoder en utf-8 par la fonction utf8_encode. Maintenant, il suffit de charger le résultat avec simplexml_load_string !

That's it !