Mostrar a previsão do tempo com PHP

Publicado por Renan Martins Pimentel em 22/11/2011

[ Hits: 12.640 ]

Blog: http://www.renanmpimentel.com.br

 


Mostrar a previsão do tempo com PHP



Veja como é fácil mostrar a previsão do tempo em seu site, usando uma API do Google.

Como é vista a URL da API

Surgiu um trabalho em que o cliente pedia a previsão do tempo em um site. Fui pesquisar e vi que em alguns sites tem um iframe para você só inserir os dados, e com isso ficaria aparecendo o 'logo' destes sites. Mas porque vou fazer propaganda para eles?

Então, fui pesquisando e achei mais uma das maravilhosas APIs do Google. E a resposta do Google vem em formato XML.

Vamos usar a classe SimpleXML (PHP 5) para manipular esses dados.

O script todo funciona de uma forma simples, através da URL você passa os dados necessários para mostrar a previsão do tempo:

http://www.google.com/ig/api?weather=Maringa,Parana,Brazil&hl=pt-br

Onde está 'Weather' são as informações básicas: primeiro a cidade: Maringá, estado: Paraná e por final o país: Brazil (estamos escrevendo com "z", porque em inglês é assim que se escreve), e no 'hl' é o idioma que queremos a resposta da consulta.

Aproveitando tudo isso com o PHP:

<?php // Localização $cidade = 'Maringa'; $estado = 'Parana'; // Estado (sem abreviação!) $pais = 'Brazil'; $idioma = 'pt-br'; // URL principal da API $googleWeather = 'http://www.google.com/ig/api'; ?>

Agora vamos montar a nossa URL:

<?php $apiUrl = $googleWeather . '?weather=' . urlencode($cidade) . ',' . urlencode($estado) . ',' . urlencode($pais) . '&hl=' . $idioma; //urlencode - Codifica uma URL ?>

Passando os valores para o SimpleXML:

<?php // Pegamos o resultado da API $resultado = file_get_contents($apiUrl); // O SimpleXML precisa receber valores em UTF-8, então usamos o uft8_encode() $xml = simplexml_load_string(utf8_encode($resultado)); ?>

Separando as informações:

<?php // 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'); ?>

Exibindo as informações no HTML:

<h2>Previsão do Tempo - <?php echo date('d/m/Y', strtotime($info[0]->forecast_date['data'])); ?></h2> <p>Cidade: <?php echo $info[0]->city['data']; ?></p> <h3>Previsão Atual</h3> <table> <tr> <td><img src="http://www.google.com<?php echo $atual[0]->icon['data']; ?>" alt="weather" /></td> <td><?php echo $atual[0]->temp_c['data']; ?>° C<br /><?php echo $atual[0]->condition['data']; ?></td> </tr> </table> <h3>Próximos dias</h3> <table> <?php foreach ($proximos AS $item) { ?> <tr> <td><?php echo $item->day_of_week['data'];?></td> <td>weatherlow['data']; ?>/<?php echo $item->high['data']; ?>° C<br /><?php echo $item->condition['data']; ?></td> </tr> <?php } ?> </table>

Referências: Previamente publicado em:

Outras dicas deste autor

Autenticação e criptografia de senhas usando PHP

Fullscreen com jQuery e CSS

Upload de várias imagens com PHP e jQuery

Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]

Gerando QR Code com PHP

Leitura recomendada

Tecla Super (tecla Windows) para todos os logins no modo gráfico

Horde Webmail: Corrigindo erro de tradução

Symfony - Introdução ao framework

Problemas com PATH ao executar comandos com su

Monitorando rede com Zabbix

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts