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');