Previsão do Tempo utilizando PHP + Yahoo Weather

Primeiramente, devemos pesquisar informações no próprio site do Yahoo.

Exemplo: Aqui

Vamos então a codificação que é muito simples:

<?php

    function retrieveYahooWeather($zipCode="BRXX3272") {
        //URL do yahoo
        $yahooUrl = "http://weather.yahooapis.com/forecastrss";
        //Região d consulta. No caso, Salvador/BA
        $yahooZip = "?p=BRXX3272&u=c";
        //Montando a URL
        $yahooFullUrl = $yahooUrl . $yahooZip;
        //Gerando o objeto utilizando a função do PHP curl_init() e passando a url montada
        $curlObject = curl_init();
        curl_setopt($curlObject,CURLOPT_URL,$yahooFullUrl);
        curl_setopt($curlObject,CURLOPT_HEADER,false);
        curl_setopt($curlObject,CURLOPT_RETURNTRANSFER,true);
        //Executando a função
        $returnYahooWeather = curl_exec($curlObject);
        curl_close($curlObject);
        //Retornando o objeto contendo as informações do tempo
        return $returnYahooWeather;
    }

    try{
        //Aqui está a chamada da função
        $localZipCode = "BRXX3272";
        $weatherXmlString1 = retrieveYahooWeather($localZipCode);
        //Criando o elemento XML de retorno
        $weatherXmlObject1 = new SimpleXMLElement($weatherXmlString1);
        //Capturando condições do tempo
        $currentCondition = $weatherXmlObject1->xpath("//yweather:forecast");
        $currentCondition2 = $weatherXmlObject1->xpath("//yweather:condition");
        //Capturando a temperatura mínima
        $minima = $currentCondition[0]["low"];
        //Capturando a temperatura máxima
        $maxima = $currentCondition[0]["high"];
        //Capturando o código da imagem
        $codeImage = $currentCondition2[0]["code"];
    }
    catch(Exception $e){
        //Realizar alguma coisa... provavelmente o reload
    }
?>

Pronto, feito isso vamos mostrar nossos dados personalizados:

<html>
<?=$maxima ?>ºC
<?=$minima ?>ºC
<img src=”http://l.yimg.com/a/i/us/we/52/<?=$codeImage;?>.gif” border=”0″ />
</html>

Claro que a formatação fica a cargo de cada um.
Lembrando também que a região pode ser passada por parâmetro para a função.

Até

Share Button