PHP ile RegEx kullanarak Hava Durumu
Bu makalede sizlere PHP ile RegEx kullanarak Yahoo'dan hava durumu bilgilerini almayi gosterecegim. onceki makalemde anlatmis oldugum doviz bilgilerinin aksine hava durumu bilgisi surekli guncellenen bir bilgi oldugundan bu tarz verileri veritabaninda depolamanizi tavsiye etmem.Artik kodumuza gecelim.

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;
}


ornek kullanim:
$izmir=HavaDurumu("TUXX0015",true); //kucuk resim isteniyorsa
$izmir=HavaDurumu("TUXX0015",false); //buyuk resim
$izmir=HavaDurumu("TUXX0015"); //buyuk resim

Daha sonra $izmir degiskenine atanan veriler $izmir[sicaklik] $izmir[max] $izmir[min] $izmir[image] gibi kullanilabilir.

Kod icinde gecen sehir kodu kismini ogrenmek icin [link:http://weather.yahoo.com/Turkey/TUXX/regional.html]buraya tiklayarak acilan siteden istediginiz sehre girin. Adres satirinda goreceginiz TUXX0015 benzeri kisim sehir kodudur onu kopyalayip yerine koyarsaniz istediginiz sehrin bilgisini alabilirsiniz.

Guncelleme - 07.10.2009:
Kodlarin duzgun versiyonunu incelemek icin [link: http://www.sansursuz.biz/phpmakalekod/havadurumu.phps]tiklayiniz
.
June 18, 2009
Ozgun Sari
PHP
4 yorum