ThinkPHP文件缓存类代码分享

5年以前  |  阅读数:785 次  |  编程语言:PHP 

取自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');
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例