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 相关文章推荐
理解PHP5中static和const关键字的区别
Mar 19 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
浅析PHP原理之变量(Variables inside PHP)
Aug 09 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
PHP代码优化技巧小结
Sep 29 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 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后台微信支付和支付宝支付开发
2017/04/28 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
关于JS模块化的知识点分享
2019/10/16 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python中使用partial改变方法默认参数实例
2015/04/28 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
商务英语专业求职信
2014/06/26 职场文书
实习推荐信格式模板
2015/03/27 职场文书
初中班长竞选稿
2015/11/20 职场文书
网络研修心得体会
2016/01/08 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android