cache->get('extensions.Wetter.wetter'); if($wetter===false) { $mwetter = $this->website_wetter($this->ort,'Germany'); $wetter['Ort'] = $this->ort; $wetter['jetzt']['tag']='Aktuell'; $wetter['jetzt']['temperatur'] = (string) $mwetter[0]['temperatur']; $wetter['jetzt']['zustand'] = (string) $mwetter[0]['zustand']; $wetter['jetzt']['icon'] = str_replace(".gif",".png",(string) $mwetter[0]['icon']); $wetter['jetzt']['hoechsttemperatur']= (string) $mwetter[1]['hoechsttemperatur']; $wetter['jetzt']['tiefsttemperatur']= (string) $mwetter[1]['tiefsttemperatur']; $wetter['morgen']['tag']=(string) $mwetter[2]['wochentag']; $wetter['morgen']['hoechsttemperatur'] = (string) $mwetter[2]['hoechsttemperatur']; $wetter['morgen']['tiefsttemperatur'] = (string) $mwetter[2]['tiefsttemperatur']; $wetter['morgen']['zustand'] = (string) $mwetter[2]['zustand']; $wetter['morgen']['icon'] = str_replace(".gif",".png",(string) $mwetter[2]['icon']); Yii::app()->cache->set('extensions.Wetter.wetter',$wetter,3600); //Yii::app()->user->setFlash('new', "Data retrieved from google"); } $this->render('wetter', compact('wetter')); } /* Nutzung dieses Scripts nur gestattet, wenn Kommentare in PHP nicht entfernt werden oder ein Link zu folgender Adresse gesetzt wird: URL: http://www.web-spirit.de/webdesign-tutorial/9/Wetter-auf-eigener-Website-mit-Google-Weahter-API Beschreibung: Wettervorhersage auf der eigenen Website mit Zugriff auf die Google Weather API Autor: Sebastian Gollus Internet: http://www.web-spirit.de Version: 1.0.201106 */ // Funktionsaufruf z.B.: $wetter = website_wetter("46562", "Germany", "/images/wetter/icons/", "de"); private function website_wetter($plz, $land, $icons_src="/", $sprache="de", $ort="") { $icons_google = "/ig/images/weather/"; //alte Google-Version //$icons_google = "http://g0.gstatic.com/images/icons/onebox/"; //neue Google-Version (bzw. zwischenzeitlich ge�ndert) if($ort != "") { $station = $ort; } else { $station = $plz."-".$land; } $api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache))); $wetter = array(); // Allgemeine Informationen $wetter['stadt'] = $api->weather->forecast_information->city->attributes()->data; $wetter['datum'] = $api->weather->forecast_information->forecast_date->attributes()->data; $wetter['zeit'] = $api->weather->forecast_information->current_date_time->attributes()->data; // Aktuelles Wetter $wetter[0]['zustand'] = $api->weather->current_conditions->condition->attributes()->data; $wetter[0]['temperatur'] = $api->weather->current_conditions->temp_c->attributes()->data; $wetter[0]['luftfeuchtigkeit'] = $api->weather->current_conditions->humidity->attributes()->data; $wetter[0]['wind'] = $api->weather->current_conditions->wind_condition->attributes()->data; $wetter[0]['icon'] = str_replace($icons_google, $icons_src, $api->weather->current_conditions->icon->attributes()->data); // Wettervorhersage heute, morgen, in zwei und in drei Tagen ($wetter[1] bis $wetter[4]) $i = 1; foreach($api->weather->forecast_conditions as $weather) { $wetter[$i]['wochentag'] = $weather->day_of_week->attributes()->data; $wetter[$i]['zustand'] = $weather->condition->attributes()->data; $wetter[$i]['tiefsttemperatur'] = $weather->low->attributes()->data; $wetter[$i]['hoechsttemperatur'] = $weather->high->attributes()->data; $wetter[$i]['icon'] = str_replace($icons_google, $icons_src, $weather->icon->attributes()->data); $i++; } return $wetter; } }