preluare prognoza meteo Yahoo
Azi am cautat de mi-au sarit ochii un script PHP pentru preluarea prognozei meteo pentru un site si nu am gasit nimic.
Asa ca mi-am pus neuronii la contributie si am creeat o clasa de php pentru preluarea datelor de pe http://weather.yahooapis.com
<?
#####################################################################
# #
# #
# PROGNOZA METEO YAHOO #
# V 1.0 #
# MIHAI TOTOIANU #
# http://mitonisign.com #
# #
# #
# mod de folosire: #
# $vremea=new weather(); #
# #
# echo $vremea->temperatura(); #
# echo ‘<img src=”‘.$vremea->img().’” />’; #
# echo $vremea->azi_high(); #
# #
# echo $vremea->maine_high(); #
# #
# #
# echo $vremea->conditii(); #
#####################################################################
class weather
{
var $returnYahooWeather =”;
var $code = ”;
function weather($zipCode=”ROXX0007″)
{
$yahooUrl = “http://weather.yahooapis.com/forecastrss”;
$yahooZip = “?p=$zipCode&u=c”;
$yahooFullUrl = $yahooUrl . $yahooZip;
$curlObject = curl_init();
curl_setopt($curlObject,CURLOPT_URL,$yahooFullUrl);
curl_setopt($curlObject,CURLOPT_HEADER,false);
curl_setopt($curlObject,CURLOPT_RETURNTRANSFER,true);
$this->returnYahooWeather = curl_exec($curlObject);
curl_close($curlObject);
$this->parseXMLDocument();
}
function parseXMLDocument()
{
$this->xml = new SimpleXMLElement($this->returnYahooWeather);
}
//afiseaza temperatura curenta
function temperatura ()
{
$currentCondition = $this->xml->xpath(”//yweather:condition”);
$currentTemperature = $currentCondition[0]["temp"];
return $currentTemperature;
}
//afiseaza conditiile atmosferice pentru timpul curent
function conditii ()
{
$condition = array (”0″=>”tornada”,”1″=>”furtuna tropicala”,”2″=>”uragan”,”3″=>”furtuna puternica”,”4″=>”furtuna”,”5″=>”lapovita si ninsoare”,”6″=>”ploaie si lapovita”,”7″=>”lapovita si ninsoare”,”8″=>”burnita”,”9″=>”burnita”,”10″=>”burnita”,”11″=>”averse”,”12″=>”averse”,”13″=>”viscol”,”14″=>”ninsoare”,”15″=>”ninsoare”,”16″=>”ninsoare”,”17″=>”grindina”,”18″=>”lapovita”,”19″=>”praf”,”20″=>”ceata”,”21″=>”ceata”,”22″=>”ceata usoara”,”23″=>”vijelie”,”24″=>”vant”,”25″=>”rece”,”26″=>”nori”,”27″=>”preponderent nori”,”28″=>”preponderent nori”,”29″=>”partial nori”,”30″=>”partial nori”,”31″=>”senin”,”32″=>”soare”,”33″=>”senin”,”34″=>”senin”,”35″=>”ploaie si grindina”,”36″=>”cald”,”37″=>”furtuni izolate”,”38″=>”furtuni izolate”,”39″=>”furtuni izolate”,”40″=>”ploi izolate”,”41″=>”ninsoare abundenta”,”42″=>”ninsori izolate”,”43″=>”ninsoare abundenta”,”44″=>”partial nori”,”45″=>”ploaie si descarcari electrice”,”46″=>”ninsoare”,”47″=>”ploi izolate si descarcari electrice”,”3200″=>”serviciu indisponibil” );
$currentCondition = $this->xml->xpath(”//yweather:condition”);
$code = $currentCondition[0]["code"];
$code = intval ($code);
return $condition[$code];
}
//preia imaginea de pe yahoo weather
function img ()
{
preg_match(’/<img src=”(.*)”\/>/Usm’,$this->returnYahooWeather,$results); $image = $results[1];
return $image;
}
//afiseaza temperatura maxima pentru ziua in curs
function azi_high ()
{
$azi = $this->xml->xpath(”//yweather:forecast”);
return $azi[0]["high"];
}
//afiseaza temperatura minima pentru ziua in curs
function azi_low ()
{
$azi = $this->xml->xpath(”//yweather:forecast”);
return $azi[0]["low"];
}
//afiseaza temperatura maxima pentru ziua urmatoare
function maine_high ()
{
$maine = $this->xml->xpath(”//yweather:forecast”);
return $maine[1]["high"];
}
//afiseaza temperatura minima pentru ziua urmatoare
function maine_low ()
{
$maine = $this->xml->xpath(”//yweather:forecast”);
return $maine[1]["low"];
}
}
?>
LASA UN COMENTARIU