Mostrar a previsão do tempo com PHP

Publicado por Renan Martins Pimentel em 22/11/2011

[ Hits: 12.914 ]

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

Upload de várias imagens com PHP e jQuery

Fullscreen com jQuery e CSS

Verificar se o CPF é válido

Gerando QR Code com PHP

Autenticação e criptografia de senhas usando PHP

Leitura recomendada

Instalando o Java e NetBeans IDE no Linux

MS Internet Explorer no Linux (IEs4Linux)

Criptografando senha do GRUB

Tutorial DDNS over NAT

Instalação de codecs no openSuse

  

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