Bilgiler
  • Ekleyen:
  • Ozgun Sari
  • Tarih:
  • June 18, 2009
  • Kategori:
  • PHP
  • Paylas:
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
.
Yorumlar
  • Eski Yorumlar:
  • google reklam
  • merabalr; ben php ogrenmeye daha yeni basladim biraz uzerine gidiyorum.kodlari alip inciyiycam tesekkurler eline saglik.
  • 2009-07-16 16:47:59
  • Ozgun SARI
  • kodlar su an sitede duzgun gorunmuyor, kopyala-yapistir yaparak kullanmayi denerseniz calismama ihtimali cok yuksek benden kaynaklanan bir problem degil. ayberk in konudan haberi var zaman buldugunda duzeltmeye calisacak.
  • 2009-07-20 04:47:16
  • Ozgun Sari
  • konuyu guncelleyerek ekledigim linkten kodlarin duzgun halini inceleyebilirsiniz.
  • 2009-10-07 15:49:23
  • Geciktirici
  • Gercekten Guzel Olmus Eline Saglik
  • 2010-02-15 19:03:32
  • bohUPTqkBJNQfAqVNW
  • Cheers pal. I do appreciate the wrintig.
  • 2011-08-24 12:28:24