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代码
Dec 06 PHP
php自动跳转中英文页面
Jul 29 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
php使用curl实现简单模拟提交表单功能
May 15 PHP
详解PHP中的 input属性(隐藏 只读 限制)
Aug 14 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
PHP反射基础知识回顾
Sep 10 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技术实现加载字体并保存成图片
2015/07/27 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python中int()函数的用法浅析
2017/10/17 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
实习生个人找工作的自我评价
2013/10/30 职场文书
小学生元旦感言
2014/02/26 职场文书
学校校庆演讲稿
2014/05/22 职场文书
本科毕业生自荐信
2014/06/02 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android