PHP文件缓存类示例分享


Posted in PHP onJanuary 30, 2015
<?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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
深入浅出php socket编程
May 13 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
php递归删除目录与文件的方法
Jan 30 #PHP
php递归法读取目录及文件的方法
Jan 30 #PHP
php实现简单文件下载的方法
Jan 30 #PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 #PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 #PHP
PHP速成大法
Jan 30 #PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 #PHP
You might like
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
进一步探究Python中的正则表达式
2015/04/28 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
tensorboard显示空白的解决
2020/02/15 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
优秀团队申报材料
2014/12/26 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
德劲DE1108畅想
2021/04/22 无线电
判断Python中的Nonetype类型
2021/05/25 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python