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 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
基于PHP array数组的教程详解
Jun 05 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
Feb 03 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
PHP编写简单的App接口
Aug 28 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 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通过session防url攻击方法
2014/12/10 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
许愿墙中用到的函数
2006/10/07 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
JavaScript多态与封装实例分析
2018/07/27 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
如何学习Python time模块
2020/06/03 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
python脚本第一行如何写
2020/08/30 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
医学生自我评价
2014/01/27 职场文书
职工趣味运动会方案
2014/02/10 职场文书
一年级评语大全
2014/04/23 职场文书
避暑山庄导游词
2015/02/04 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript