Script PHP Meteo | Previsioni Meteo con PHP e Google Weather API | Programmatore PHP | Programmatore MySQL | Sviluppo Siti Internet

Previsioni Meteo con PHP e Google Weather API



ATTENZIONE: L’esempio successivo non è più funzionante poichè google ha deprecato l’uso delle API Meteo

In questi giorni, come Programmatore PHP in un attività di Consulenza ho avuto l’esigenza per un sistema di Booking Online di fornire un servizio semplice, cioè un Meteo con le previsioni dei prossimi giorni.

Pur essendo disponibile una moltitudine di siti internet che offrono il proprio codice da copiare e incollare nel proprio sito, per ragioni di Ottimizzazione del Codice e per evitare URL che puntassero all’esterno, come Programmatore PHP ho preferito utilizzare le Google Weather API per creare un piccolo script che ognuno di voi portrà facilmente personalizzare che permetta la generazione di un Meteo PHP utile per le esigenze base di ogni utente.

Consiglio ad ogni Programmatore PHP lo studio di alcune funzioni presenti all’interno dello script come la funzione curl_setopt o simplexml_load_file

// Creiamo un file fisico per evitare problemi di configurazione che si manifestano su alcuni server
$ch = curl_init("http://www.google.com/ig/api?weather=Napoli&hl=it");
$fp = fopen("weather.xml", "w");
//Con la funzione CURL settimano i parametri in maniera che l'XML venga letto correttamente (encoding)
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);
//Leggiamo l'XML delle previsioni
$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");
?>
<h2>Napoli - Oggi</h2>
<div class="weather">
<img src="<?= 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"/>
<span class="condition">
<br/><?= $current[0]->temp_c['data'] ?>&deg; C<br/>
<?= $current[0]->condition['data'] ?>
</span>
</div>
<h2>Previsioni Prossimi Giorni</h2>
<? foreach ($forecast_list as $forecast) : ?>
<div class="weather">
<img src="<?= 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"/>
<div><?= ucfirst($forecast->day_of_week['data']); ?></div>
<span class="condition">
<?= $forecast->low['data'] ?>&deg; C - <?= $forecast->high['data'] ?>&deg; C<br/>
<?= $forecast->condition['data'] ?>
</span>
</div>
<br/>
<? endforeach ?>
PER ULTERIORI INFORMAZIONI:

Daniele Tabacco
Programmatore PHP | Web Developer | Consulente Web e SEO

PHP - MySql - AJAX - HTML5 - JAVASCRIPT - CSS - JSON/XML - JQuery
WebApps, Applicazioni, Realizzazione Siti Mobile per iPhone e Android
Programmatore PHP - Consulente Web Marketing Napoli, Roma, Milano, Firenze.
Tel.+39 329.11.73.918
email: daniele.tabacco[at]gmail.com
skype: daniele.tabacco

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio

 


POTREBBE INTERESSARTI ANCHE:
Una Semplice WebApps Realizzata con HTML/Javascript/CSS consentirà l'accesso rapido da iPhone/iPad (Ma anche da desktop) alle vostre Google Analytics. Programmatore PHP Realizzazione Siti Mobile
Realizzare una rotazione di Banner utilizzando JQuery, con possibilità per un Programmatore PHP di ampliare l'esempio rendendo dinamico la selezione dei Banner direttamente da database MySQL
La Creazione di un Progetto Web, può passare da 2 figure professionali distinte Sviluppatori Web e Creatori di Siti Internet, ma attenzione alle insidie.
Breve esempio per le API Google Maps, in cui inseriremo un Marker (puntatore) su un punto di interesse, quest'esempio ci darà l'idea delle funzionalità disponibili per le Google Maps
Con una funzione PHP un programmatore php può trasformare una url youtube, vimeo o dailymotion in un codice embed


buzzoole code
Leggi altro:
Leggere i Feed RSS con AJAX e PHP (Esempio)

In questo esempio come Programmatore PHP e Programmatore AJAX mostrerò le potenzialità di uno Script AJAX che interagendo con un...

Chiudi