الاثنين، 27 مايو 2013

دالة حالة الطقس معتمدًا على ياهوو

فى هذه التدوينة سأقوم بوضع دالة لتوضيح حالة الطقس معتمدًا على ياهوو ونظام الكاش، سأقوم بوضع الدالة هنا فى التدوينة، ومن ثم مثال بسيط على طريقة إستخدامها، والآن اترككم مع الدالة.
define(CACHE_DIR, 'cache');
define(CACHE_AGE, 3600);

function retrieve($zipCode="92832") {
$path = CACHE_DIR . '/cache.xml';
$cached = get_cache_value($path);
if(false !== $cached){
$result = $cached;
} else {
$url = "http://weather.yahooapis.com/forecastrss?p=$zipCode&u=c";
$result = file_get_contents($url);

set_cache_value($path, $result);
}
$XmlObject = new SimpleXMLElement($result);
return array('location' => $XmlObject->xpath('//yweather:location') ,'forecast' =>
$XmlObject->xpath('//yweather:forecast'));
}
function get_cache_value($path){
if(file_exists($path)){
$now = time();
$file_age = filemtime($path);
if(($now - $file_age) < CACHE_AGE){
return file_get_contents($path);
} else {
return false;
}
} else {
return false;
}
}
function set_cache_value($path, $value){
return file_put_contents($path, $value);
}
أما بالنسبة لطريقة الإستخدام، فهذا مثال بسيط على طريقة إستخدام الدالة:
$data = retrieve('92832');
echo $data['location'][0]['city'];
echo $data['forecast'][0]['low'];

المزيد من المواضيع:

1 التعليقات:

  1. السلام عليكم

    اخي عصام ياريت اتوضح اكثر اين نضع الكود الاول والكود الثاني ايضا اين نضعه

    وكيف نحدد العاصمة ودرجة الحرارة وكيف نتحكم بالشكل عن طريق css

    مع الشكر والتقدير لك

    ردحذف