Ayberk Atasay

ASP, CSS, Internet konuları üzerine paylaşımlar


PHP ile RegEx kullanarak Hava Durumu

Bu makalede sizlere PHP ile RegEx kullanarak Yahoo'dan hava durumu bilgilerini almayı göstereceğim. Önceki makalemde anlatmış olduğum döviz bilgilerinin aksine hava durumu bilgisi sürekli güncellenen bir bilgi olduğundan bu tarz verileri veritabanında depolamanızı tavsiye etmem.Artık kodumuza geçelim.


function HavaDurumu($sehirkodu,$kucukresim=false) {
$sonuc=array();
$contents=file_get_contents("http://weather.yahoo.com/forecast/".$sehirkodu."_c.html");
$pattern='/<dt>Feels Like:</dt><dd>(d+)°</dd>/';
preg_match($pattern, $contents, $matches);
$sonuc[hissedilen]=$matches[1]." °C";
unset($matches);
$pattern='/<dt>Barometer:</dt><dd>(d+)(sw+)([sw]+)</dd>/';
preg_match($pattern, $contents, $matches);
$sonuc[basinc]=$matches[1].$matches[2];
unset($matches);
$pattern='/<dt>Humidity:</dt><dd>(d+)\%</dd>/';
preg_match($pattern, $contents, $matches);
$sonuc[nem]="%".$matches[1];
unset($matches);
$pattern='/<div class="forecast-icon" style="background:url('(.+?)');/';
preg_match($pattern, $contents, $matches);
if($kucukresim == false) { $sonuc[image]=$matches[1]; } else { $sonuc[image]=substr($matches[1],0,-5)."s.png"; }
unset($matches);
$pattern='/<div class="forecast-temp">s*<h3>(d+)°</h3>s*<p>High:s(d+)°sLow:s(d+)°</p>/';
preg_match($pattern, $contents, $matches);
$sonuc[sicaklik]=$matches[1]." °C";
$sonuc[max]=$matches[2]." °C";
$sonuc[min]=$matches[3]." °C";
unset($matches);
return $sonuc;
}


Örnek kullanım:
$izmir=HavaDurumu("TUXX0015",true); //küçük resim isteniyorsa
$izmir=HavaDurumu("TUXX0015",false); //büyük resim
$izmir=HavaDurumu("TUXX0015"); //büyük resim

Daha sonra $izmir değişkenine atanan veriler $izmir[sicaklik] $izmir[max] $izmir[min] $izmir[image] gibi kullanılabilir.

Kod içinde geçen şehir kodu kısmını öğrenmek için [link:http://weather.yahoo.com/Turkey/TUXX/regional.html]buraya[link] tıklayarak açılan siteden istediğiniz şehre girin. Adres satırında göreceğiniz TUXX0015 benzeri kısım şehir kodudur onu kopyalayıp yerine koyarsanız istediğiniz şehrin bilgisini alabilirsiniz.

Güncelleme - 07.10.2009:
Kodların düzgün versiyonunu incelemek için tıklayınız.

PHPÖzgün Sarı18 Haziran 2009, PerşembeEkle Bunu
Önceki Kayıt
Sonraki Kayıt
Yorumlar
Geciktirici
15 Şubat 2010, Pazartesi
Gerçekten Güzel Olmuş Eline Sağlık
Özgün Sarı
7 Ekim 2009, Çarşamba
konuyu güncelleyerek eklediğim linkten kodların düzgün halini inceleyebilirsiniz.
Özgün SARI
20 Temmuz 2009, Pazartesi
kodlar şu an sitede düzgün görünmüyor, kopyala-yapıştır yaparak kullanmayı denerseniz çalışmama ihtimali çok yüksek benden kaynaklanan bir problem değil. ayberk in konudan haberi var zaman bulduğunda düzeltmeye çalışacak.
google reklam
16 Temmuz 2009, Perşembe
merabalr;
ben php ögrenmeye daha yeni başladım biraz üzerine gidiyorum.kodları alıp inciyiycam teşekkürler eline saglık.
Yorum Yaz

İsim (*)

e-Posta (*) (Yayımlanmayacak)

URL




Resmi Değiştir
Güvenlik Kodu (Yukarıda gördüğünüz karakterleri yazınız)


Copyright © 2008 ayberk.com | Bu sitenin kodlaması ve teması Ayberk Atasay tarafından hazırlanmıştır. | XHTML 1.0