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 相关文章推荐
php5中类的学习
Mar 28 PHP
php Ajax乱码
Apr 09 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
微信接口生成带参数的二维码
Jul 31 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python scipy卷积运算的实现方法
2019/09/16 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
六年级数学教学反思
2014/02/03 职场文书
工伤赔偿协议书
2014/04/15 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
北京青年观后感
2015/06/15 职场文书
党员读书活动心得体会
2016/01/14 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL