前几天一个很古老的网站突然要加微信分享功能。无奈cms太过古老。无法缓存微信接口的AccessToken。存数据库觉得得不偿失。加redis 觉得还不如存数据库(还需要 给线上服务器装redis服务,觉得范不上)。只好写道文件里。
function setCache($cache_key,$data=false,$time=3600){
//缓存文件存在且时间不超过一小时,则直接使用缓存的结果集,不在进行任何的MySQL查询了
$cachFile = $_SERVER['DOCUMENT_ROOT'].'/Data/'.$cache_key.'.php';
if($data || $data!==false||$data===NULL){
$data = json_encode($data);
file_put_contents($cachFile, $data);
}else{
if(file_exists($cachFile) && time()-filemtime($cachFile) < $time) {
//使用缓存中的结果
$json = file_get_contents($cachFile);
if($json=='null'){
return false;
}
return json_decode($json,true);
}
return false;
}
return false;
}
setCache('key','mycache');//设置缓存
echo setCache('key'); //读取缓存
setCache('key',null);//清空缓存
有一点不知道是否合理,就是当我清空缓存的时候。是否有必要取把这个缓存文件删掉。