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 printf输出格式使用说明
Dec 05 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
跟我学Laravel之路由
Oct 15 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
Laravel日志用法详解
Oct 09 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
YII2框架使用控制台命令的方法分析
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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
python中__call__内置函数用法实例
2015/06/04 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
python中可以声明变量类型吗
2020/06/18 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
季度思想汇报
2014/01/01 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
中学生检讨书1000字
2014/10/28 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python