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中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP原生函数一定好吗?
Dec 08 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
PHP预定义超全局数组变量小结
Aug 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
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Form表单及django的form表单的补充
2019/07/25 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
css3实现超炫风车特效
2014/11/12 HTML / CSS
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
电子商务实训报告总结
2014/11/05 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
执行力心得体会范文
2016/01/11 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
Django项目如何正确配置日志(logging)
2021/04/29 Python