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下使用curl模拟用户登陆的代码
Sep 10 PHP
PHP学习之整理字符串
Apr 17 PHP
php的memcached客户端memcached
Jun 14 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
总结js函数相关知识点
2018/02/27 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
Sanic框架Cookies操作示例
2018/07/17 Python
numpy基础教程之np.linalg
2019/02/12 Python
python实现logistic分类算法代码
2020/02/28 Python
Python文件操作基础流程解析
2020/03/19 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
香港零食网购:上仓胃子
2020/06/08 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
实习求职信
2013/12/01 职场文书
厨师长岗位职责
2014/03/02 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
小学生安全责任书
2014/07/25 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python