PHP Hava Durumu Scripti

PHP Script
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

İlginizi Çekebilecek Diğer İçerikler

14 Yorum

  1. Mesut dedi ki:

    üstad ellerine sağlık on numara paylaşım bana göre teşkkürler :))

  2. WebmasterMeMo dedi ki:

    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

  3. Damien dedi ki:

    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.

  4. şükrü yaren dedi ki:

    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

  5. AYDIN dedi ki:

    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.

  6. kahvelekesi dedi ki:

    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

  7. burak arslan dedi ki:

    @kahve lekesi GET le default şehri alıcaksın option daki şehir değerine basit bir eklemeyle seçtirebilirsin.

  8. zerkaya dedi ki:

    caner bunlar gerçekleri ile uymuyor galiba

  9. isimsiz kovboy dedi ki:

    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?

  10. hacer dedi ki:

    Caner oraya ikon nasıl çekebiliriz? mesela parçalı bulutlu ikonu çeksek yazı yerine?

    • Caner Öncel dedi ki:

      hava_duzenle fonksiyonunun içinde bul – değiştir ile yapabilirsin, yani aşağıdaki kodu

      1
      2
        $search = array('Tarih:','Basinc:','Nem:','°C');  
        $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:

      1
      2
        $search = array('Tarih:','Basinc:','Nem:','°C','SaganakYagis','Yagmur');  
        $replace = array('<b>Tarih: </b>','<b>Basınç: </b>','<b>Nem: </b>','°C','','');
  11. Özcan ARAS dedi ki:

    Teşekkürler çok sağolun..

  12. Mert dedi ki:

    2014 ten selamlar,tekrar teşekkürler

  13. Onur dedi ki:

    Merhaba,

    Havadurumunu cache kullanarak nasil gosterebiliriz? Cok fazla istek gelince sunucuyu anlik yorabilir.

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir