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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
一个用于MySQL的PHP XML类
Oct 09 PHP
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
基于mysql的论坛(4)
Oct 09 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
ThinkPHP的模版中调用session数据的方法
Jul 01 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
php面象对象数据库操作类实例
Dec 02 PHP
织梦sitemap地图实时推送给百度的教程
Aug 03 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
php面向对象重点知识分享
Sep 27 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中static和const关键字的区别
2007/03/19 PHP
PHP 中文处理技巧
2010/04/25 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
深入了解NumPy 高级索引
2020/07/24 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
工程业务员岗位职责
2013/12/31 职场文书
工程建设实施方案
2014/03/14 职场文书
法定代表人授权委托书
2014/04/04 职场文书
防灾减灾标语
2014/10/07 职场文书
2014年除四害工作总结
2014/12/06 职场文书
项目负责人岗位职责
2015/02/15 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书