Php Hava Durumu Kodları (Yahoo Weather Api)
Daha önce bir çok projede kullandığım php hava durumu kodları, ilgili sitenin kaynak kodlarının değişmesinden yada daha esnek ve fonksiyonel olamamalarından dolayı sorun olarak karşıma çıkmıştır.
Bu bağlamda stabil çalışan ve görsel ikonlarla istediğimiz gibi özelleştirilebilen yapısı sayesinde Yahoo’ nun weather apisi çok kullanışlı.
Yahoo Weather Api’ sini kullanmak için öncelikle Türkiye’nin apiye özel kodlarını bilmemiz gerekiyor.
Ben tek tek 81 ilimizin kodlarını aldım ve array olarak hazırladım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
$sehirler = array( 2344116 => "İstanbul", 2343732 => "Ankara", 2344117 => "İzmir", 2343678 => "Adana", 2343680 => "Adıyaman", 2343682 => "Afyon", 2343687 => "Ağrı", 2343707 => "Aksaray", 2343729 => "Amasya", 2343733 => "Antalya", 2343738 => "Ardahan", 2343741 => "Artvin", 2343751 => "Aydın", 2343771 => "Balıkesir", 2343781 => "Bartın", 2343786 => "Batman", 2343787 => "Bayburt", 2343810 => "Bilecik", 2343811 => "Bingöl", 2343814 => "Bitlis", 2343819 => "Bolu", 2343840 => "Burdur", 2343843 => "Bursa", 2343859 => "Çanakkale", 2343862 => "Çankırı", 2343904 => "Çorum", 2343920 => "Denizli", 2343932 => "Diyarbakır", 2343949 => "Edirne", 2343954 => "Elazığ", 2343976 => "Erzincan", 2343977 => "Erzurum", 2343980 => "Eskişehir", 2343999 => "Gaziantep", 2344018 => "Giresun", 2344042 => "Gümüşhane", 2344061 => "Hakkari", 2344073 => "Hatay", 2323778 => "Mersin", 2344094 => "Iğdır", 2344114 => "Isparta", 2344125 => "Kahramanmaraş", 2344140 => "Karabük", 2344152 => "Karaman", 2344165 => "Kars", 2344169 => "Kastamonu", 2344174 => "Kayseri", 2344196 => "Kırıkkale", 2344198 => "Kırklareli", 2324643 => "Kırşehir", 2344192 => "Kilis", 2329471 => "Kocaeli", 2344210 => "Konya", 2344239 => "Kütahya", 2344246 => "Malatya", 2344250 => "Manisa", 2344252 => "Mardin", 2344271 => "Muğla", 2344276 => "Muş", 2344285 => "Nevşehir", 2344286 => "Niğde", 2344302 => "Ordu", 2344312 => "Osmaniye", 2344336 => "Rize", 2344345 => "Sakarya", 2344351 => "Samsun", 2344385 => "Siirt", 2344394 => "Sinop", 2344398 => "Sivas", 2344354 => "Şanlıurfa", 2344396 => "Şırnak", 2344436 => "Tekirdağ", 2344446 => "Tokat", 2344452 => "Trabzon", 2344453 => "Tunceli", 2344475 => "Uşak", 2344480 => "Van", 2344489 => "Yalova", 2344529 => "Yozgat", 2344539 => "Zonguldak" ); ?> |
Array olan şehirleri select olarak listelemek istersek;
1 2 3 4 5 6 7 8 9 10 11 12 |
<select name="sehir"> <? foreach($sehirler as $anahtar => $deger) { ?> <option value="<?=$anahtar;?>"><?=$deger;?></option> <? } ?> </select> |
şeklinde listeleyebiliriz. Gelelim hava durumu bilgilerini nasıl çekeceğimize.
1 2 3 4 5 6 7 8 9 10 11 12 |
$sehir_kodu = "2344116"; // İstanbul $url = "http://weather.yahooapis.com/forecastrss?w=".$sehir_kodu."&u=c"; $feed = file_get_contents($url); preg_match('@<yweather:condition text="(.*?)" code="(.*?)" temp="(.*?)" date="(.*?)" />@', $feed, $suan_hava); preg_match_all('/<img src="(.*)"\/>/Usi', $feed, $img); $Suan_Hava_Sicakligi = $suan_hava[3]; $Suan_Hava_Ikon_Kodu = $suan_hava[2]; |
$Suan_Hava_Sicaklığı olan değişken hava sıcaklığını verir
$Suan_Hava_Icon_Kodu ise havanın o anki durumunu görsel olarak ifade eder.
Hava ikon koduna örnek:
<img src=”images/hava/<?=$Suan_Hava_Icon_Kodu;?>.png” /> şeklinde kullanabilirsiniz.
Kendi kullandığım ikonları buradan indirebilirsiniz. Beğenmezseniz google’da arayın daha güzel hava durumu ikonları çıkar.
EsenPortal teması için hazırladığım örneği buradan inceleyebilirsiniz. Girdiğinizde sayfanın sağında biraz aşağıya inince göreceksiniz.
Yahoo Weather gerçekten stabil çalışıyor, tavsiye ederim.
merhaba ben bu kodu wordprese nasıl uyarlayabilirim acaba
Yukarıda aslında tüm materyaller mevcut bunları isteğinize göre biçimlendirmek kalıyor. Kısaca select ile seçilen şehri get yada post ile gönderip seçilen şehrin hava durumunu dinamik olarak gösterebilirsin. Yoğun olduğumdan örnek uygulama yapamadım, fırsat bulursam yapıcam.
örnek yaparsanız gercekten çok makbule gecer
Bende sabırsızlıkla bekliyorum. Örnek sayfada çok güzel duruyor. Bende WordPress sayfama eklemek isterim.
Sunu halled yada sana zahmet ayritli bir sekilde anlat 1 ay sitemizde reklaminizi yapalim sanirim diger arkadalarda kabul eder kolay gelsin
Müsait olduğum zaman yapacağım inşallah.
Hocam yapmış oldugunuz tema oldukça güzel olmuş önecıkanlar alt kısmındaki saga sola kayan siliderin kodlarını paylaşırmısınız yada nasıl yaparız
Benim kullandığım kütüphane jCarouselLite. http://www.gmarwaha.com/jquery/jcarousellite/ burada örnek uygulamayı görebilir ve indirebilirsiniz.
hcm bir örnek yazsanız harika olucak renklendirme çok güzel olmuş.
Hcm apiyi paylaşırsanız çok memnun olurum. iframe şeklinde de yayınlayabilirsiniz. Sitedeki hava durumu gayet şık ve güzel.
rica etsek bunun dosyalarını paylaşabilir misin. birleştiremedim 🙁