取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧。
<?php/** * @desc 文件缓存 */class Cache{const C_FILE = "/Runtime/";private $dir = "";const EXT = ".tpl";private $filename = "";public function __construct($dir = ""){$this->dir = $dir;}/** *@desc 设置文件缓存 *@param string $key 文件名*@param unkonw $data 缓存数据 *@param int$expire 过期时间 */public function set($key,$data,$expire = 0){$this->filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;if(file_exists($this->filename)){$res = $this->get($key);if(md5($res) == md5(json_encode($data) ) ){return true;}}if(!is_dir(dirname($this->filename))){mkdir(dirname($this->filename),0777);}$source = fopen($this->filename,"w+");fwrite($source,json_encode($data));fclose($source);}/** *@desc 获取文件 * @param string $key 文件名 */public function get($key){//$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;if(!file_exists($this->filename)){return "缓存文件已经不存在";}else{$res = file_get_contents($this->filename);}return $res;}/** *@desc 删除文件 * @param string $key 文件名 */public function del($key){unlink($this->filename);}}$data = array("name"=>"song","age"=>20,"sex"=>"man","favority"=>array("apple","banana"));$cache = new Cache();$cache->set("cache",$data);//$cache->get("cache");//$cache->del("cache");