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 相关文章推荐
PHP 程序员也要学会使用“异常”
Jun 16 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
linux下实现定时执行php脚本
Feb 13 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
Smarty模板变量调节器用法分析
May 23 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
php微信开发之图片回复功能
Jun 14 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
openPNE常用方法分享
2011/11/29 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
require.js的用法详解
2015/10/20 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
Python实现把数字转换成中文
2015/06/29 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
秋天的雨教学反思
2014/04/27 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
高中生逃课检讨书
2014/10/10 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
嘉宾邀请函
2015/01/31 职场文书
老龙头导游词
2015/02/11 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
秋收起义观后感
2015/06/11 职场文书
电视新闻稿
2015/07/17 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python