nescafeboy1 发表于 2017-3-25 10:09:21

PHP文件缓存类

  <?php
/* 
 
*/ 
$fzz = new fzz_cache;
$fzz->kk = $_SERVER; //写入缓存
//$fzz->set("kk",$_SERVER,10000); //此方法不与类属性想冲突,可以用任意缓存名;
print_r($fzz->kk);  //读取缓存
//print_r($fzz->get("kk"));
//unset($fzz->kk); //删除缓存
//$fzz->_unset("kk");
var_dump(isset($fzz->kk)); //判断缓存是否存在
//$fzz->_isset("kk");
//$fzz->clear(); //清理过期缓存
//$fzz->clear_all(); //清理所有缓存文件
class fzz_cache{
 public $limit_time = 20; //缓存过期时间
 public $cache_dir = "data"; //缓存文件保存目录
 //写入缓存
 function __set($key , $val){
  $this->set($key ,$val);
 }
 //第三个参数为过期时间
 function set($key ,$val,$limit_time=null){
  $limit_time = $limit_time ? $limit_time : $this->limit_time;
  $file = $this->cache_dir."/".$key.".php";
  $val = serialize($val);
  @file_put_contents($file,$val) or $this->error(__line__,"文件写入失败");
  @chmod($file,0777)  or $this->error(__line__,"设定文件权限失败");
  @touch($file,time()+$limit_time) or $this->error(__line__,"更改文件时间失败");
 }
 //读取缓存
 function __get($key){
  return $this->get($key);
 }
 function get($key){
  $file = $this->cache_dir."/".$key.".php";
  if (@filemtime($file)>=time()){
   return unserialize(file_get_contents($file));
  }else{
   @unlink($file) ;
  }
 }
 //删除缓存文件
 function __unset($key){
  return $this->_unset($key);
 }
 function _unset($key){
  if (@unlink($this->cache_dir."/".$key.".php")){
   return true;
  }else{
   return false;
  }
 }
 //检查缓存是否存在,过期则认为不存在
 function __isset($key){
  return $this->_isset($key);
 }
 function _isset($key){
  $file = $this->cache_dir."/".$key.".php";
  if (@filemtime($file)>=time()){
   return true;
  }else{
   @unlink($file) ;
   return false;
  }
 }
 //清除过期缓存文件
 function clear(){
  $files = scandir($this->cache_dir);
  foreach ($files as $val){
   if (filemtime($this->cache_dir."/".$val)cache_dir."/".$val);
   }
  }
 }
 //清除所有缓存文件
 function clear_all(){
  $files = scandir($this->cache_dir);
  foreach ($files as $val){
   @unlink($this->cache_dir."/".$val);
  }
 }
 function error($line,$msg){
  die("出错文件:".__file__."\n出错行:$line\n错误信息:$msg");
 }
}
?>
页: [1]
查看完整版本: PHP文件缓存类