Showing the weather with PHP and Google Weather API

September 8th, 2009

weather

If you need to show weather in your website, you can use weather widget such as weatherbug. It’s nice and simple, but maybe you need something more integrated with your website. So, take a look at Google Weather API.

http://www.google.com/ig/api?weather=[city name]

Example :

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

It will give you xml data, and you can parse it easy in PHP. Take a look at sample code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=jakarta');
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>
<html>
    <head>
        <title>Google Weather API</title>
    </head>
    <body>
        <h1><?= print $information[0]->city['data']; ?></h1>
        <h2>Today's weather</h2>
        <div class="weather">		
            <img src="<?= 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?>
            <span class="condition">
            <?= $current[0]->temp_f['data'] ?>&deg; F,
            <?= $current[0]->condition['data'] ?>
            </span>
        </div>
        <h2>Forecast</h2>
        <? foreach ($forecast_list as $forecast) : ?>
        <div class="weather">
            <img src="<?= 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?>
            <div><?= $forecast->day_of_week['data']; ?></div>
            <span class="condition">
	            <?= $forecast->low['data'] ?>&deg; F - <?= $forecast->high['data'] ?>&deg; F,
	            <?= $forecast->condition['data'] ?>
            </span>
        </div>	
        <? endforeach ?>
    </body>
</html>

In real world, you need to take consideration to cache the result, you don’t need to call the google API each time as the weather change daily. That’s it. Happy coding everyone.

You can see the weather at Jakarta.

Related posts:

  1. Ultimate Collection of PHP Libraries
  2. 101 PHP Tutorials for PHP Programmer Wannabe
  3. How to Add Google +1 Button to Your Site
  4. 20 Great PHP Libraries You Need to Know
  5. Using Django template in PHP

Tags:

11 Comments