复制代码 代码如下:<?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");