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 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
给ECShop添加最新评论
Jan 07 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
php计算整个目录大小的方法
Jun 01 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 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
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
python strip()函数 介绍
2013/05/24 Python
mac系统安装Python3初体验
2018/01/02 Python
Python实现求数列和的方法示例
2018/01/12 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
python write无法写入文件的解决方法
2019/01/23 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
化学专业毕业生自荐信
2013/11/15 职场文书
自主招生自荐信
2013/12/08 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
党校学习心得体会范文
2014/09/09 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
人事任命书范本
2015/09/21 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang