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+MySQL 制作简单的留言本
Nov 02 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
PHP对象实例化单例方法
Jan 19 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
thinkphp5 路由分发原理
Mar 18 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 读取文件的正确方法
2009/04/29 PHP
PHP操作xml代码
2010/06/17 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
JS实现self的resend
2010/07/22 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
js有序数组的连接问题
2013/10/01 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
用python实现的线程池实例代码
2018/01/06 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
django中间键重定向实例方法
2019/11/10 Python
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
成品仓管员工作职责
2013/12/29 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
ipad隐藏软件app图标方法
2022/04/19 数码科技