Está en la página 1de 3

Reporte del Clima con PHP y Google | unijimpe http://blog.unijimpe.net/reporte-del-clima-con-php-y...

unijimpe  ( http://blog.unijimpe.net )
Desarrollo Web, SEO, Adsense

Reporte del Clima con PHP y Google
19 October 2009 | 25 comentarios | General, Google, PHP, Servicios Web
Tags: clima, Google, PHP, xml, xml2array

En el artículo Showing the weather with PHP and Google Weather API en donde explican la
forma de obtener los datos del clima utilizando Google. Para ello acceden a un URL utilizado en
iGoogle el cual devuelve un XML con los datos del clima actual para la ciudad seleccionada y el
pronostico para los siguientes tres días.

Obteniendo los datos de Google


Para obtener los datos del clima (condición, temperatura, humedad, vientos) de una ciudad
determinada podemos acceder al siguiente URL.

01. http://www.google.com/ig/api?weather=city

1 de 3 30/08/10 17:48
Reporte del Clima con PHP y Google | unijimpe http://blog.unijimpe.net/reporte-del-clima-con-php-y...

Estos datos son devueltos en idioma ingles, podemos agregarle un parámetro adicional hl para
indicar el idioma de la respuesta, por ejemplo para español.

01. http://www.google.com/ig/api?weather=city&hl=es

Utilizando PHP para mostrar los datos


Ahora que ya sabes de donde obtener los datos los cargamos con PHP utilizando la función
file_get_contents y posteriormente los convertimos en un array utilizando xml2array.

01. require("xml2array.php");
02.
03. $url = "http://www.google.com/ig/api?weather=lima&hl=es";
04. $contents = file_get_contents($url);
05. $data = xml2array($contents);
06.
07. $weather_info = $data['xml_api_reply']['weather']['forecast_information'];
08. $weather_current = $data['xml_api_reply']['weather']['current_conditions'];
09. $weather_forecast = $data['xml_api_reply']['weather']['forecast_conditions'];

Como se puede ver, hemos obtenido los datos de los nodos forecast_information,
current_conditions, forecast_conditions en tres variables. Estos nodos contienen los datos de la
ciudad consultada, los datos actuales clima y la predicción del clima para los siguientes tres días.

El siguiente paso es imprimir los datos que hemos obtenido de las respectivas variables. Si
mostramos los datos del clima actual tendríamos el siguiente código:

01. <h3>Google Weather Demo </h3>


02. <div id="current">
03. <strong><?php echo utf8_encode($weather_info['city']['attr']['data']); ?></strong><br />
04. <img src="http://www.google.com<?php echo $weather_current['icon']['attr']['data']; ?>" />
05. Condición: <?php echo $weather_current['condition']['attr']['data']; ?><br />
06. Temperatura: <?php echo $weather_current['temp_c']['attr']['data']; ?> &deg;C<br />
07. <?php echo $weather_current['humidity']['attr']['data']; ?><br />
08. </div>

Nótese que mostramos el icono con el clima actual, los datos de la condición, temperatura y
humedad. Pueden ver el ejemplo funcionando en http://samples.unijimpe.net/gweather/basic.php

También podemos mostrar las predicciones del clima para los siguientes días utilizando la variable

2 de 3 30/08/10 17:48
Reporte del Clima con PHP y Google | unijimpe http://blog.unijimpe.net/reporte-del-clima-con-php-y...

$weather_forecast que contiene un array para ello escribimos:

01. <div id="forecast">


02. <?php for ($i=0; $i<sizeof($weather_forecast); $i++) { ?>
03. <?php $foreday = $weather_forecast[$i]; ?>
04. <div id="item">
05. <?php echo utf8_encode($foreday['day_of_week']['attr']['data']); ?><br />
06. <img src="http://www.google.com<?php echo $foreday['icon']['attr']['data']; ?>" /><br />
07. <?php echo $foreday['low']['attr']['data']; ?>&deg;C |
08. <?php echo $foreday['high']['attr']['data']; ?>&deg;C
09. <?php } ?>
10. </div>

Agregando CSS y un formulario de búsqueda podemos obtener excelentes resultados, solo depende
de nuestra imaginación. Pueden ver ejemplo final funcionando en http://samples.unijimpe.net
/gweather/.

3 de 3 30/08/10 17:48

También podría gustarte