Php Dersleri

İp Adresini Kullanarak Hava Durumu Botu Hazırlama

Hava durumu botu hazırlamak standartlaşan bir bot türü haline geldi artık. Bu standartları yıkarak, hava durumu botuna farklı bir çalışma mekanizması getirmemiz gerekiyor. Peki, bunu nasıl yapabiliriz? Mesela, ziyaretçinin yaşadığı şehir bilgisini alarak, yaşamış olduğu şehre ait hava durum bilgilerini gösterebiliriz. Bu işlemi gerçekleştirmek için bir önceki derse göz atabilirsiniz. BKZ: İp Adresini Kullanarak Detaylı Bilgiler Alma | ip api

Dinamik bir hava durumu botu hazırlamak için bazı adımlar vardır. Bu adımlara algoritmada diyebiliriz. Öncelikle yapmamız gerekenleri listelemek, ardından da uygulamak gerekir. Gelin öncelikle nelerin yapılması gerektiğini bir listeleyelim.

1 – Ziyaretçinin İP Adresini Öğren.
2 – Ziyaretçinin İP Adresini Kullanarak Şehir Bilgisine Ulaş
3 – Şehir Bilgisine Göre Hava Durumu Sitesinden Verilere Ulaş
4 – Ziyaretçiye Bottan Gelen Bilgileri Sun.

Bu adımları izleyerek, dinamik bir hava durumu hazırlamış olacağız. Yukarıdaki listede yer alan adımları uygulayarak botu hazırlayalım.

1 – Ziyaretçinin İP Adresini Öğren

Php’de bir ziyaretçinin İP adresini öğrenmek çok kolaydır. Bunun için aşağıdaki kodu yazmamız yeterli olacaktır.

$ip = @$_REQUEST['REMOTE_ADDR'];

Ziyaretçinin İP adresini böylelikle almış oluyoruz. Şimdi 2. Adıma geçerek, işlemlere devam edelim.

2 – Ziyaretçinin İP Adresini Kullanarak Şehir Bilgisine Ulaş

Ziyaretçinin şehir bilgisine ulaşma işlemini bir önceki derste işlemiştik. Konu hakkında detaylı bilgi için, İp Adresini Kullanarak Detaylı Bilgiler Alma | ip api makalesine göz atabilirsiniz. Bu derste yer alan şehir bilgisine ulaşma bilgisini direk olarak alıyoruz.

$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
$Sehir = $query["city"]; // Ziyaretçinin Şehir bilgisi

Yukarıdaki kod bloğu ile ziyaretçinin bağlantı kurmuş olduğu şehir bilgilerine ulaşmış oluyoruz. Şimdi ise, şehir bilgisini kullanarak hava durumu bilgilerini alalım.

3 – Şehir Bilgisine Göre Hava Durumu Sitesinden Verilere Ulaş

Ziyaretçinin, şehir bilgisini aldıktan sonra, havadurumu.com.tr adresine bağlanarak gerekli bilgileri alıyoruz. Bağlanma işlemini cURL yardımı ile yapacağız. Bunun için ilk önce bir fonksiyon oluşturuyoruz. Bu fonksiyon hazırlamış olduğumuz URL’e erişmemizi sağlayacak.

Function Baglan($a){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $a);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$isle = curl_exec($ch);
curl_close($ch);
return $isle;
}

Şimdiyse Baglan fonksiyonunu kullanarak, hazırlamış olduğumuz URL’e erişim sağlıyoruz.

$Link = Baglan("http://havadurumu.com.tr/havadurumu/".$Sehir."-hava-durumu");
preg_match('@<span class="cur_temp">\s+(.*?)</span>@si', $Link, $HavaDerece);
preg_match('@<img src="/icons/(.*?)".*?alt="(.*?)" title=".*?">@si', $Link, $Detaylar);

Ziyaretçinin şehir bilgisine göre düzenlemiş olduğumuz URL yapısına bağlanarak, gerekli bilgileri preg_match ile alıyoruz.

4 – Ziyaretçiye Bottan Gelen Bilgileri Sun.

Bilgileri başarılı bir şekilde aldığımıza göre, bu verileri ziyaretçiye sunmak zor olamayacaktır. Örnek olarak göstermek için, bir HTML/CSS yapısı oluşturuyorum. Bunu sisteminize göre gerekli yerlere uygulamanız daha iyi olacaktır.

#Hava{width:200px;height:110px;padding:5px;border:1px solid #ccc;}
#Hava div{text-align:center;padding:5px;background:#eee;font-weight:bold}
#Hava img{width:80px;height:80px;margin-top:5px;float:left}
#Hava span.Derece{margin-top:12px;font-size:20px;text-align:center;display:block}
#Hava span.Durum{font-size:16px;text-align:center;display:block}
<div id="Hava">
<div><?=$Sehir?></div>

<img src="http://havadurumu.com.tr/icons/<?=$Detaylar["1"]?>" />
<span class="Derece"><?=$HavaDerece["1"]?></span>
<span class="Durum"><?=$Detaylar["2"]?></span>
</div>

Bu küçük uygulama sayesinde, ziyaretçilerin bilgilerini alarak dinamik bir hava durumu botu oluşturmuş oluyoruz. Böylelikle, sayfamızı ziyaret eden kişilerin özel hissetmesini sağlamış oluyoruz.

Bir önceki yazım olan İp Adresini Kullanarak Detaylı Bilgiler Alma | ip api başlıklı makalemi de okumanızı öneririm.

İlgilizi Çekecek Konular

Substr_count ile Belirlenen Verilerdan Kaç Tane Olduğunu Bulmak

ibrahim Çevrük

Php ile Renkli Listeleme Yapma

ibrahim Çevrük

Google reCaptcha Güvenlik Doğrulaması | Ben Robot Değilim

ibrahim Çevrük

Yorum Giriniz