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 相关文章推荐
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
php获取域名的google收录示例
Mar 24 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
php投票系统之增加与删除投票(管理员篇)
Jul 01 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 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
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
js实时获取系统当前时间实例代码
2013/06/28 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python爬虫之自制英汉字典
2019/06/24 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Python配置文件处理的方法教程
2019/08/29 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
keras输出预测值和真实值方式
2020/06/27 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
中医专业应届生求职信
2013/11/17 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
校园文明标语
2014/06/13 职场文书
大学生自荐书范文
2015/03/05 职场文书
应聘教师自荐信
2015/03/26 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
python3操作redis实现List列表实例
2021/08/04 Python
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers