[تحسين] دالة حالة الطقس معتمدا على الياهو مع نظام الكاش
مثال الاستعمال:
$data = retrieve('92832'); echo $data['location'][0]['city']; echo $data['forecast'][0]['low']; عليك استخدام var_dump(retrieve('92832')); لمعرفة جميع مخرجات المصفوفة للاستعمال الامثل 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); } |
الموقع الآن فى الفترة التجريبية وهذا الجزء غير كامل وجارى العمل عليه، للراغبين في المساعدة برجاء التقدم