Free PHP Yahoo Weather Class!
 

1) WHAT IT IS?!

This class delivers you the weather data from http://weather.yahoo.com! It uses the free RSS stream from yahoo. The class is very easy to use. Also an automatically caching is integrated. So the rss has not to be loaded every hit to the page! You can define the cache lifetime by your self. Enjoy it!!!

2) DEMO

The demo is available by clicking on the following link! This test script shows you all attributes, that the class delivers!

http://www.voegeli.li/development/class.yahoo.weather/weather.test.php (new window)
 

3) DOWNLOAD

Download the file from one of the following locations:

http://www.voegeli.li/development/class.yahoo.weather/class.yahoo.weather.rar
 

4) USAGE EXAMPLE (VERY EASY)

Take a look at the following using example! This is taken from the test script, which is included in the download archive. If you want t know more about attributes and methods, read the following points.
 

include("class.xml.parser.php");
include("class.weather.php");

$weather_chile = new weather("CIXX0020", 3600, "C"); // LocationCode, seconds cachelifetime, TempUnit (F or C)

$weather_chile->parsecached();

 

5) METHODS

The following methods are provided by the class.

 Method Description
Constructor Method:

object = new weather("CIXX0020", 3600, "C");

 


This is the constructor method, automatically called, when you make the instance. There are 3 Parameters you have to pass:
  • "CIXX0020" = Location Code from weather.Yahoo.com
  • (Go to weather.yahoo.com, search in the browser for location, click on location link and look in the browsers URL field for the Code Param (at the end!)
  • 3600 = 3600 seconds (1 hour) lifetime of the cache object. By using method parsecached() this defines, when the RSS has to be automatically reparsed from RSS (If not needed pass "0")
  • "C" = Celsius. This is the unir, in which the temperature should be taken ("F" = Fahrenheit / "C" = Celsius)
 parse()
This method parses the weather data from RSS every call!!! That means every time, when you call this method, the weather data are refreshed from the RSS from weather.yahoo.com. This may be very slow (needs every hit a connection to the Yahoo server!).
NOT RECOMMENDED
 
 parsecached()
This method parses the RSS only if needed! That means it looks on your local server, if there's a valid object cache file (named like the location code). If there is no cached version, it automatically parses the object from RSS weather.yahoo.com, writes the object with a specified lifetime down to your local server! Very enhanced! Very usefull and VERY FAST!!
RECOMMENDED!!!
 

6) ATTRIBUTES

Here is the complete list of the class attributes with a description:

Attribute Description
locationtext  (unused)
locationcode The location code from weather.yahoo.com
allurl        RSS URL (full)
title         Text from Yahoo (Yahoo! Weather - Santiago, CI)
city          City (Santiago)
sunrise       Time of sunrise
sunset        Time of sunset
yahoolink     Link to the actual forecast details on weather.yahoo.com
acttext       Actual Situation: Text
acttemp       Actual Situation: Temperature
acttime       Actual Situation: Time of measure
imageurl      Actual Situation: Logo from yahoo
actcode Actual Situation: Weather code (see testscript images!)
fore_day1_day  (DAY1)   Forecast: Day ("Wed", "Thu"...)
fore_day1_date     Forecast: Date
fore_day1_tlow   Forecast: Temp low (night)
fore_day1_thigh    Forecast: Temp high (day)
fore_day1_text     Forecast: Text
fore_day1_imgcode  Forecast: Weather code (see testscript images!)
fore_day2_day  (DAY2)   Forecast: Day ("Wed", "Thu"...)
fore_day2_date     Forecast: Date
fore_day2_tlow    Forecast: Temp low (night)
fore_day2_thigh    Forecast: Temp high (day)
fore_day2_text     Forecast: Text
fore_day2_imgcode  Forecast: Weather code (see testscript images!)
fore_day3_day  (DAY3)    Forecast: Day ("Wed", "Thu"...)
fore_day3_date     Forecast: Date
fore_day3_tlow     Forecast: Temp low (night)
fore_day3_thigh    Forecast: Temp high (day)
fore_day3_text     Forecast: Text
fore_day3_imgcode  Forecast: Weather code (see testscript images!)
fore_day4_day  (DAY4)    Forecast: Day ("Wed", "Thu"...)
fore_day4_date     Forecast: Date
fore_day4_tlow     Forecast: Temp low (night)
fore_day4_thigh   Forecast: Temp high (day)
fore_day4_text     Forecast: Text
fore_day4_imgcode  Forecast: Weather code (see testscript images!)
fore_day5_day  (DAY5)   Forecast: Day ("Wed", "Thu"...)
fore_day5_date    Forecast: Date
fore_day5_tlow    Forecast: Temp low (night)
fore_day5_thigh    Forecast: Temp high (day)
fore_day5_text     Forecast: Text
fore_day5_imgcode  Forecast: Weather code (see testscript images!)