alexa  Menu
weather api

PHP ile 10 günlük hava durumu çekme

  03.01.2017 ,   7 yorum ,   3.102 kez okundu.

Son zamanlar çok az vaktim oluyor haliyle paylaşım da yapamıyorum. O yüzden birçok kişinin ortak isteği olduğu için böyle bir konuya değinmek istedim. Hazırladığınız sayfalarda kullanıcı için faydalı bilgiler sunmak isteyebilirsiniz. Bu bilgilerden bir tanesi de hava durumudur.

Bu paylaşımda Yahoo Weather Api kullanarak istediğiniz ülke ve şehir için 10 günlük hava durumunu nasıl çekebileceğimizi anlatmaya çalıştım.

YQL Query (Kullanacağımız sorgu. Burada sadece sonda izmir ve tr girmemiz yeterli)

select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="izmir, tr")

Fakat yukarıdaki gibi bir sorgu bize Fahrenheit olarak sonuç verir. Bize Celcius gerekli olduğu için sorgunun and u=’c’ kodlarını eklememiz gerekiyor. Sonuç olarak YQL Query aşağıdaki gibi olacaktır:

select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="nome, ak") and u='c'

Bu sorguyu çalıştırdığınızda size json formatında bir liste dönüyor. İşte bu json`u parse edersek 10 günlük hava durumunu rahatlıkla elde etmiş olacağız.

Tam olarak PHP kodumuz şöyle olacaktır:

<?php
    $BASE_URL = "http://query.yahooapis.com/v1/public/yql";
    $sql = "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text='izmir, tr' )and u='c'";
    $URL = $BASE_URL . "?q=" . urlencode($sql) . "&format=json";
    $data=file_get_contents($URL);

    $parse=json_decode($data);
    foreach ($parse->query->results->channel->item->forecast as $key => $value)
    {
      echo "<ul>";
      echo '<li>'.$value->date.' - '.$value->code.' - '.$value->text.' - '.$value->high.'&degC - '.$value->low.'&degC</li>';
      echo "</ul>";
    }
?>

Bu kod yardımıyla oluşturulan json linki için tıklayın.

Hava durumu kodlarına buradan ulaşabilirsiniz.

Dersin daha anlaşılır olması için aşağıdaki videoyu izlemenizi tavsiye ederim. Destek olmak için arkadaşlarınızla paylaşırsanız da sevinirim 🙂

Örnek kod dosyasına github hesabımdan ulaşabilirsiniz.

7 yorum yapılmış

    Haydar

    Hoca linklerini kontrol eder misin

    22.02.2017, 13:03:11

    Haydar

    Ayrıca şunu belirteyim Yahoo’dan 10 günlük hava durumu senin verdiğin kodlarla çok güzel çekiliyor. Tebrik ederim teşekkür ederim.
    Yalnız benim bir isteğim olacak
    Ben sadece BUGÜN ve BUGÜNÜN NEM, RÜZGAR VE BASINÇ oranları ile birlikte çekmek istiyorum.
    Yardımcı olabilir misin?

    23.02.2017, 13:36:11

    Halit Yazıcı

    Kardeş teşekkür ederim. Ancak yahoo hava durumu açıklamasını yani ‘.$value->text.’ bölümünü replace yapamadım. Bu açıklama bölümünü nasıl Türkçe yapabiliriz. Yardımcı olabilir misin?

    24.02.2017, 16:18:20

    ebru

    5 gunluk veri cekmek icin ne yapmalıyım?

    11.04.2017, 17:25:56

      Anar SAMADOV

      Bu api 10 günlük değerleri döndürür. siz 5 günlük göstermek isterseniz programlama tarafında bunu kontrol ettirebilirsiniz.En basitinden bir sayaç kullanabilirsiniz.5 olduğunda durdurursunuz.

      11.04.2017, 21:21:36

Bir Cevap Yazın


%d blogcu bunu beğendi: