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 and xml示例
Nov 22 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
PHPThumb图片处理实例
May 03 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP中session跨子域的三种实现方法
Jul 25 PHP
php array_merge_recursive 数组合并
Oct 26 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 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的5个入手程序
2006/11/23 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
python strip()函数 介绍
2013/05/24 Python
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
厂长岗位职责
2014/02/19 职场文书
小学母亲节活动方案
2014/03/14 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
小组组名及励志口号
2015/12/24 职场文书