ThinkPHP文件缓存类代码分享


Posted in PHP onApril 22, 2015

取自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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
建立文件交换功能的脚本(二)
Oct 09 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
php 中的closure用法详解
Jun 12 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
php文件下载处理方法分析
Apr 22 #PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 #PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 #PHP
php文件缓存类用法实例分析
Apr 22 #PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 #PHP
PHP判断是否为空的几个函数对比
Apr 21 #PHP
php两种无限分类方法实例
Apr 21 #PHP
You might like
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
python zip文件 压缩
2008/12/24 Python
Python列表append和+的区别浅析
2015/02/02 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
python中tab键是什么意思
2020/06/18 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
社区包粽子活动方案
2014/01/21 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS