Mostrar a previsão do tempo com PHP

Publicado por Renan Martins Pimentel em 22/11/2011

[ Hits: 12.857 ]

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

Verificar se o CPF é válido

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

Configurando Banner no Linux

Permissões práticas para usuários práticos

Montando imagens criadas pelo dd de um dispositivo RAID

Aplicando plugin Layer7 ao Debian Lenny 64 bits

UbuntuDDE - Ubuntu + Deepin

  

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