php文件缓存类
1 <?php 2 /** 3 * @desc 文件缓存 4 */ 5 class Cache{ 6 const C_FILE = '/Runtime/'; 7 PRivate $dir = ''; 8 const EXT = '.tpl'; 9 private $filename = '';10 public function __construct($dir = ''){11 $this->dir = $dir;12 13 }14 /**15 * @desc 设置文件缓存16 * @param string $key 文件名 17 * @param unkonw $data 缓存数据18 * @param int $expire 过期时间19 */20 public function set($key,$data,$expire = 0){21 $this->filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;22 if(file_exists($this->filename)){23 $res = $this->get($key);24 if(md5($res) == md5(json_encode($data) ) ){25 return true;26 }27 }28 if(!is_dir(dirname($this->filename))){29 mkdir(dirname($this->filename),0777);30 }31 32 $source = fopen($this->filename,'w+');33 fwrite($source,json_encode($data));34 fclose($source);35 }36 37 /**38 * @desc 获取文件39 * @param string $key 文件名40 */41 public function get($key){42 //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;43 if(!file_exists($this->filename)){44 return '缓存文件已经不存在';45 }else{46 $res = file_get_contents($this->filename);47 }48 return $res;49 }50 /**51 * @desc 删除文件52 * @param string $key 文件名53 */54 public function del($key){55 unlink($this->filename);56 }57 58 }59 60 $data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana'));61 $cache = new Cache();62 $cache->set('cache',$data);63 //$cache->get('cache');64 //$cache->del('cache');