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正则
Jul 07 PHP
提升PHP执行速度全攻略(上)
Oct 09 PHP
获得Google PR值的PHP代码
Jan 28 PHP
smarty section简介与用法分析
Oct 03 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php算法实例分享
Jul 14 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
php 可变函数使用小结
Jun 12 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 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单态模式简单用法示例
2016/11/16 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jquery选择器简述
2015/08/31 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
vue中的inject学习教程
2019/04/24 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
pycharm新建一个python工程步骤
2019/07/16 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python dict乱码如何解决
2020/06/07 Python
python解包概念及实例
2021/02/17 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
劲霸男装广告词
2014/03/21 职场文书
学习经验交流会主持词
2014/04/01 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
普通话演讲稿
2014/09/03 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL