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 minixml详解
Jul 19 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
PHP检测链接是否存在的代码实例分享
May 06 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
php 获取文件行数的方法总结
Oct 11 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHP implode()函数用法讲解
Mar 08 PHP
PHP中md5()函数的用法讲解
Mar 30 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中Object对象的笔记分享
2011/06/28 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
js的2种继承方式详解
2014/03/04 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
js实现随机点名功能
2020/12/23 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
python安装twisted的问题解析
2018/08/21 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python字符串的一些操作方法总结
2019/06/10 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python ssh 执行shell命令的示例
2020/09/29 Python
信息服务专业毕业生求职信
2014/03/02 职场文书
特此通知格式
2015/04/27 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
深入理解go slice结构
2021/09/15 Golang
Redis+AOP+自定义注解实现限流
2022/06/28 Redis
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers