Код |
---|
$ch = curl_init(); //curl_setopt($ch, CURLOPT_FILE, $fp); $url="http://199.199.199.63:8086/cgi/sirena23.cgi/city_text||query?ak=".urlencode("7Á"); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 180); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res_city=curl_exec($ch); curl_close($ch); if($obCache->StartDataCache()){ $obCache->EndDataCache(array('res_city'=>$res_city));} |
function cache($config = null,$function){
$defcinf = array(
'cache_dir' => 'default',
'cache_time' => 3600,
'cache_id' => md5(rand(1,90000))
);
if (!is_null($config)){
foreach ($config as $k=>$v){
if (isset($defcinf[$k])){
$defcinf[$k] = $config[$k];
}
}
}
$obCache = new CPHPCache;
$cache_dir = "/ch_".$defcinf['cache_dir'];
$cache_id = ''.$defcinf['cache_id'];
if($obCache->InitCache($defcinf['cache_time'], $cache_id, $cache_dir)){
$return = $obCache->GetVars();
} elseif ($obCache->StartDataCache()) {
$return = $function();
$obCache->EndDataCache($return);
}
return $return;
}
использовать например так:
public function get_some($id){
return cache(array(
'cache_id' => 'some_id_'.$id,
'cache_dir' => 'some_cache/',
'cache_time' => 86400
), function() use ($id) {
// тут чтото делаешь
$some = $id + 2 ;
return $some;
});
}