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的面试题集
Nov 19 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
php常用表单验证类用法实例
Jun 18 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
php实现图片等比例缩放代码
Jul 23 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 PHP
浅谈PHP中的那些魔术常量
Dec 02 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用户注册时常用的检验函数实例总结
2014/12/22 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
Joomla开启SEF的方法
2016/05/04 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
python基础教程之Hello World!
2014/08/29 Python
浅谈python对象数据的读写权限
2016/09/12 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
会计应届生的自荐信
2013/12/13 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
《口技》教学反思
2014/02/21 职场文书
建筑安全责任书范本
2014/07/24 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
怎样写好工作计划
2019/04/10 职场文书