PHP Curl ile Hava Durumu

Eylül 2012 | Turan Karatuğ, Web Yazılım Uzmanı
Daha önce simplexml_load_file fonksiyonunu kullanarak yayınlamış olduğum hava durumu betiğinin sayfanızda çalışabilmesi için php ayarlarındaki "allow_url_fopen" değeri "On" olmalıdır. Bazı hosting firmaları bu ayarı güvenlik açısından kapalı tutmaktadır. Böyle durumlarda aynı betiği Curl kütüphanesi kullanarak aşağıdaki şekilde kullanabilirsiniz.

function sayfaYukle($link){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}

$bolge = 'Bodrum';
$sXML = sayfaYukle('http://free.worldweatheronline.com/feed/weather.ashx?q='.$hava.',Turkey&format=xml&num_of_days=2&key=api_key');

$oXML = new SimpleXMLElement($sXML);
foreach($oXML->current_condition as $hava){
echo "<img src='$hava->weatherIconUrl' /><br />";
echo "Sıcaklık : $hava->temp_C &deg; C";
echo "Nem : % $hava->humidity";
}
?>

XML adresinde bulunan "api_key" bölümüne, worldweatheronline.com sitesine üye olarak alacağınız api anahtarını girmeniz gerekmektedir. Önceki gönderilerimde bunu belirtmeyi unutmuşum.