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:
Referências:
Previamente publicado em:
Nenhum comentário foi encontrado.