Sistema de previsão do tempo em php

A alguns dias eu estava fazendo a área administrativa de um site, muito simples por sinal, e meio veio a mente que tipo de conteúdo eu poderia colocar que fosse útil ao meu cliente, e meu cliente é uma pessoa que praticamente passa o dia todo trabalhando na rua, sempre visitando seus clientes, então eu pensei: “poxa vou colocar o sistema de previsão do tempo do google”, e foi muito útil, fiz algumas pesquisas e encontrei uma forma bem bacana de fazer o sistema, vou passar para vocês agora.


O primeiro passo é ir até a url e colocar os seguintes comandos:

Base: http://www.google.com/ig/api?weather=cidade,estado,país&hl=idioma

Com parâmetros: http://www.google.com/ig/api?weather=Belo Horizonte,Minas Gerais,Brazil&hl=pt-br


Coloque a cidade e o estado com espaços, não tem problema, se for junto o Google não reconhece.


Imediatamente ele irá gerar um arquivo XML, copie todo o texto XML e cole no seu editor(notepad, notepad++, dreamweaver) e salve-o como previsão.xml


Em seguida vamos criar um arquivo de classe, salve-o como previsão.class.php e coloque nele o seguinte código:

< ?php
// Localização
$cidade = 'Belo horizonte'; // Cidade
$estado = 'Minas Gerais'; // Estado (sem abreviação!)
$pais = 'Brazil'; // País (em inglês)
$idioma = 'pt-br'; // Idioma de resposta (pt-br)
// URL principal da API
$googleWeather = 'http://www.google.com/ig/api';

// Montamos a URL que será chamada
// Usamos a função urlencode() para substituir caracteres especiais
$apiUrl = $googleWeather . '?weather=' . urlencode($cidade) . ',' . urlencode($estado) . ',' . urlencode($pais) . '&hl=' . $idioma;


// Pegamos o resultado da API
$resultado = file_get_contents($apiUrl);
// Usamos o SimpleXML para pegar a resposta
// O SimpleXML precisa receber valores em UTF-8, então usamos o uft8_encode()
$xml = simplexml_load_string(utf8_encode($resultado));


// Separamos as informações encontradas
$info = $xml->xpath('/xml_api_reply/weather/forecast_information');
$atual = $xml->xpath('/xml_api_reply/weather/current_conditions');
$proximos = $xml->xpath('/xml_api_reply/weather/forecast_conditions');
?>
E por fim na pagina em que você deseja que apareça o sistema de previsão do tempo coloque o seguinte código:

Previsão do Tempo - < ?php echo date('d/m/Y', strtotime($info[0]->forecast_date['data'])); ?>

Cidade: < ?php echo $info[0]->city['data']; ?>

Previsão Atual

<'img src="http://www.google.com< ?php echo $atual[0]->icon['data']; ?>" alt="weather" '/> < ?php echo $atual[0]->temp_c['data']; ?>° C  condition['data']; ?>

   Próximos dias

< ?php foreach ($proximos AS $item) { ?>  <'img src="http://www.google.com< ?php echo $item->icon['data']; ?>" alt="weather" '/>    < ?php echo $item->day_of_week['data'];?> < ?php echo $item->low['data']; ?>/high['data']; ?>° C < ?php echo $item->condition['data']; ?>
< ?php } ?>

Para publicar este codigo eu precisei fazer duas moficações, e quando vocês forem inserir no codigo de vocês fiquem atendos para:
1 - juntar o espaço existente entre a tag do php " < ?php "
2 - retirem a aspas simples que está na tag de imagem <'img src=...
Espero que tenham gostado, boa sorte e até a próxima.

Comentários