標籤:
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‘);
PHP檔案快取類