Mostrar a previsão do tempo com PHP

Publicado por Renan Martins Pimentel em 22/11/2011

[ Hits: 12.911 ]

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

Upload de várias imagens com PHP e jQuery

Gerando QR Code com PHP

Fullscreen com jQuery e CSS

Verificar se o CPF é válido

Leitura recomendada

VM900M da gigabite X SuSE

Linux e Windows em Dual Boot com Windows sem Desabilitar o GRUB

Configurando a Orinoco Wireless Wave Lan Silver no seu laptop

Linux no Dell Optiplex 320

PEInjector: nova ferramenta para injetar payloads maliciosos em arquivos PE

  

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