Bunun hava durumu gibi standart bir talebe profesyonelce cevap vermek için işinize yarayacağını düşünüyorum. Sağdan soldan alınan hazır linklerin veya resim üzerine basılan değerlerin çok profesyonel durmadığı aşikar, neden sayfanızla tümleşik bir içeriğe sahip olmayasınız ki. Yazdığım scripti <iframe> mantığıyla sabit bir şehir için çağırabileceğiniz gibi sitenize include edip tümleşik çalışmasını sağlayabilirsiniz. Scriptin çalışan örneğini buradan görebilirsiniz.
PHP Hava Durumu v1.0
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 | // Hava Durumu v1.0 // Devlet Meteoroloji İşleri sayfasından anlık hava tahmini verilerini alır // Caner ÖNCEL - http://www.egonomik.com // Kullanım: // Hava durumuna bakılacak olan şehri $_GET ile çağırıyoruz // Örnek: havadurumu.php?sehir=istanbul error_reporting(E_ALL); ini_set('display_errors','Off'); if($_GET['sehir'] == "") { $sehir = "istanbul"; } // varsayılan şehir else { $sehir = $_GET['sehir']; } function hava_duzenle($text) { $text = trim($text); $search = array('Tarih:','Basinc:','Nem:','°C'); $replace = array('<b>Tarih: </b>','<b>Basınç: </b>','<b>Nem: </b>','°C'); $new_text = str_replace($search,$replace,$text); return $new_text; } $sehir_big = ucfirst($sehir); $sehir_ufak = strtolower($sehir); // DMİ Verilerini okuyoruz, bağlanamazsak hata verdirtiyoruz. $gelen_sayfa = file_get_contents("http://www.dmi.gov.tr/FTPDATA/wap/$sehir_ufak.wml") or die ('<b>HATA!</b> Meteoroloji İşleri Genel Müdürlüğü hava tahmini verilerine ulaşılamıyor, girilen şehir adı hatalı veya sunucu meşgul olabilir. İstenen şehir: '.$sehir_big.' <a>« Geri</a>'); $basladi = stristr($gelen_sayfa,"Tarih"); $bitti = strpos($basladi,"<b>TAHMiN"); $durum1 = substr($basladi,0,$bitti); $hava_durumu = hava_duzenle($durum1);</b> // HTML dökümünü kendinize göre düzenleyebilirsiniz. echo ' <span style="font-family: Tahoma; font-size: small;"> <b>Şehir:</b> '.$sehir_big.' '.$hava_durumu.' </span> '; |
Dilerseniz aşağıdaki selectbox’u koda adapte ederek farklı şehirler için seçim yaptırabilirsiniz:
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 | <form id="sehirler" action="" method="GET" name="sehirler"><select name="sehir" size="1" onchange="document.sehirler.submit();"> <option>-- Şehir Seçiniz --</option> <option>Adana</option> <option>Adiyaman</option> <option>Afyon</option> <option>Agri</option> <option>Aksaray</option> <option>Amasya</option> <option>Ankara</option> <option>Antalya</option> <option>Ardahan</option> <option>Artvin</option> <option>Aydin</option> <option>Balikesir</option> <option>Bartin</option> <option>Batman</option> <option>Bayburt</option> <option>Bilecik</option> <option>Bingol</option> <option>Bitlis</option> <option>Bolu</option> <option>Burdur</option> <option>Bursa</option> <option>Canakkale</option> Cankiri <option>Corum</option> <option>Denizli</option> <option>Diyarbakir</option> <option>Duzce</option> <option>Edirne</option> <option>Elazig</option> <option>Erzincan</option> <option>Erzurum</option> <option>Eskisehir</option> <option>Gaziantep</option> <option>Giresun</option> <option>Gumushane</option> <option>Hakkari</option> <option>Hatay</option> igdir <option>isparta</option> <option>icel</option> <option>istanbul</option> <option>izmir</option> <option>Kahramanmaras</option> <option>Karabuk</option> <option>Karaman</option> <option>Kars</option> <option>Kastamonu</option> <option>Kayseri</option> <option>Kirikkale</option> <option>Kirklareli</option> <option>Kirsehir</option> <option>Kilis</option> <option>Kocaeli</option> <option>Konya</option> <option>Kutahya</option> <option>Malatya</option> <option>Manisa</option> <option>Mardin</option> <option>Mugla</option> <option>Mus</option> <option>Nevsehir</option> <option>Nigde</option> <option>Ordu</option> <option>Osmaniye</option> <option>Rize</option> <option>Sakarya</option> <option>Samsun</option> <option>Siirt</option> <option>Sinop</option> <option>Sivas</option> <option>Sanliurfa</option> <option>Sirnak</option> <option>Tekirdag</option> <option>Tokat</option> <option>Trabzon</option> <option>Tunceli</option> <option>Usak</option> <option>Van</option> <option>Yalova</option> <option>Yozgat</option> <option>Zonguldak</option> </select></form> |
Scriptin çalışan örneği:
Demo
Scripti indir:
Download
14 yorum
üstad ellerine sağlık on numara paylaşım bana göre teşkkürler :))
Selam arkdaslar öncelikle bu site gibi güzel bir site görmedim ben cok beyendim ben coktan beri urasiyorum kendi capimda hobi olarak site isleriyle amma dedim gibi cok paylasim yeri gördum burasi muhtesem siteme buranin reklamini eklicem burdan faydalansinlar bence hepinize tsk ederim
Selamlar üstadım, tam aradığım bir çalışma ortaya koymuşsunuz, fakat sizin sitenizde çalışmasına rağmen benim sitemde çalışmıyor, uyarı görüntülüyor.
Sizce sebebi ne olabilir?
Teşekkürler.
Damien arkadaşın dediği gibi sizin sitede çalışıyor ama uygulamak istediğim sitede çalışmıyor bu konuda ne kadar yardımcı olabilirsiniz bilmiyorum ama..
yardım ederseniz sevinirim
Bu scriptin 5 günlük hava durumu tahmini veren scriptini nasıl yaparız? Mümkünmüdür sadece Aydın ili için yapmak isitoyrum.
Bir sorum olacak select menude sectiğim şehir seçili olmasını(diminin yazmasını istiyorum) istiyorum.Tekrar şehir seçin diye yazmasın nasıl yapabiirim
@kahve lekesi GET le default şehri alıcaksın option daki şehir değerine basit bir eklemeyle seçtirebilirsin.
caner bunlar gerçekleri ile uymuyor galiba
Ben sorunsuz çalıştırıyorum sıkıntı yok fakat seçim kısmına gelince şehirleri seçmiyor var sayılan şehri gösteriyor diğer şehirleri seçtiğim zaman sebebi ne olabilir acaba?
Caner oraya ikon nasıl çekebiliriz? mesela parçalı bulutlu ikonu çeksek yazı yerine?
hava_duzenle fonksiyonunun içinde bul – değiştir ile yapabilirsin, yani aşağıdaki kodu
2
$replace = array('<b>Tarih: </b>','<b>Basınç: </b>','<b>Nem: </b>','°C');
şöyle değiştirirsen işin görülür diye tahmin ediyorum:
2
$replace = array('<b>Tarih: </b>','<b>Basınç: </b>','<b>Nem: </b>','°C','','');
Teşekkürler çok sağolun..
2014 ten selamlar,tekrar teşekkürler
Merhaba,
Havadurumunu cache kullanarak nasil gosterebiliriz? Cok fazla istek gelince sunucuyu anlik yorabilir.