Código PHP:
<?php
ini_set("memory_limit","1500M");
ini_set("buffering ","0");
ini_set('max_execution_time',9000);
class GoogleWeatherAPI {
private $city_code = '';
private $city = '';
private $domain = 'www.google.com';
private $prefix_images = '';
private $current_conditions = array();
private $forecast_conditions = array();
private $is_found = true;
/**
* Class constructor
* @param $city_code is the label of the city
* @param $lang the lang of the return weather labels
* @return ...
*/
function __construct ($city_code,$lang='fr') {
$this->city_code = $city_code;
$this->prefix_images = 'http://'.$this->domain;
$this->url = 'http://'.$this->domain.'/ig/api?weather='.urlencode($this->city_code).'&hl='.$lang;
$content = utf8_encode(file_get_contents($this->url));
$xml = simplexml_load_string($content);
if(!isset($xml->weather->problem_cause)) {
$xml = simplexml_load_string($content);
$this->city = (string)$xml->weather->forecast_information->city->attributes()->data;
$this->current_conditions['condition'] = (string)$xml->weather->current_conditions->condition->attributes()->data;
$this->current_conditions['temp_f'] = (string)$xml->weather->current_conditions->temp_f->attributes()->data;
$this->current_conditions['temp_c'] = (string)$xml->weather->current_conditions->temp_c->attributes()->data;
$this->current_conditions['Humedad'] = (string)$xml->weather->current_conditions->humidity->attributes()->data;
$this->current_conditions['icon'] = $this->prefix_images.(string)$xml->weather->current_conditions->icon->attributes()->data;
$this->current_conditions['wind_condition'] = (string)$xml->weather->current_conditions->wind_condition->attributes()->data;
foreach($xml->weather->forecast_conditions as $this->forecast_conditions_value) {
$this->forecast_conditions_temp = array();
$this->forecast_conditions_temp['day_of_week'] = (string)$this->forecast_conditions_value->day_of_week->attributes()->data;
$this->forecast_conditions_temp['low'] = (string)$this->forecast_conditions_value->low->attributes()->data;
$this->forecast_conditions_temp['high'] = (string)$this->forecast_conditions_value->high->attributes()->data;
$this->forecast_conditions_temp['icon'] = $this->prefix_images.(string)$this->forecast_conditions_value->icon->attributes()->data;
$this->forecast_conditions_temp['condition'] = (string)$this->forecast_conditions_value->condition->attributes()->data;
$this->forecast_conditions []= $this->forecast_conditions_temp;
}
} else {
$this->is_found = false;
}
}
function getCity() {
return $this->city;
}
function getCurrent() {
return $this->current_conditions;
}
function getForecast() {
return $this->forecast_conditions;
}
function isFound() {
return $this->is_found;
}
}
//llama la llama
$gweather = new GoogleWeatherAPI('lima','pe');
if($gweather->isFound()) {
foreach($gweather->getCurrent() as $key => $value)
{
if($key=='temp_c'){ $temperatura=' '.$value.'°C'; echo $temperatura; } else { echo ' '; }
} //fin del poreach
}// end if
?>
Pero sucede este error:
Código:
espero sus ayudas amigos ya que este script es muy bueno para diferentes cosas, gracia spor su aporte. Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : Opening and ending tag mismatch: meta line 1 and HEAD in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: <TITLE>302 Moved</TITLE></HEAD><BODY> in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/dprimera/public_html/online/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 6: parser error : Opening and ending tag mismatch: HEAD line 1 and HTML in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: </BODY></HTML> in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/dprimera/public_html/online/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 7: parser error : Premature end of data in tag HTML line 1 in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/***user***/public_html/temperatura.php on line 31 Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : Opening and ending tag mismatch: meta line 1 and HEAD in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: <TITLE>302 Moved</TITLE></HEAD><BODY> in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 6: parser error : Opening and ending tag mismatch: HEAD line 1 and HTML in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: </BODY></HTML> in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 7: parser error : Premature end of data in tag HTML line 1 in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: in /home/***user***/public_html/temperatura.php on line 35 Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/***user***/public_html/temperatura.php on line 35 Fatal error: Call to a member function attributes() on a non-object in /home/***user***/public_html/temperatura.php on line 37