.: HosiriS :.

Informatica e non solo

Meteo… a portata di click!

Posted by hosiris su ottobre 1, 2010

Tony Stark ogni mattina viene svegliato da Jarvis, che oltre orari e appuntamenti lo informa sulla situazione meteo della giornata… Io lo voglio pure! Lungi da avere a disposizione un sistema come Jarvis (ma prima o poi ci riesco) ho cominciato a studiare una soluzione che per il momento mi permetta di acquisire info riguardo la situazione meteorologica.
Dopo varie ricerche ho scoperto che Google ha una sorta di API che fornisce un file XML con le informazioni richieste: weather google.
Perchè non usare questo allora?

Cominciamo con il prelevare li informazioni:

$ch = curl_init("http://www.google.com/ig/api?weather=Roma&hl=it");
$fp = fopen("weather.xml", "w");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

A questo punto abbiamo a disposione un file XML che dovremmo elaborare. Io ho utilizzato il seguente script:

$xml = simplexml_load_file("weather.xml");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");

Infine, per mostrare i file:

<h2>Roma - Oggi</h2>
<div class="weather">
  <img src="<?php echo 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"/>
  <br/><?php echo $current[0]->temp_c['data'] ?>° C<br/>
  <?php echo $current[0]->condition['data'] ?>
</div>
<h2>Previsioni Prossimi Giorni</h2>
<?php foreach ($forecast_list as $forecast) : ?>
<div class="weather">
  <img src="<?php echo 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"/>
  <div><?php echo ucfirst($forecast->day_of_week['data']); ?></div>
  <?php echo $forecast->low['data'] ?>° C - <?php echo $forecast->high['data'] ?>° C<br/>
  <?php echo $forecast->condition['data'] ?>
</div>
<br/>
<?php endforeach ?>

La soluzione è molto semplice no? Il risultato è visibile qui.

Per il momento: buon divertimento!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: