php文件缓存类用法实例分析


Posted in PHP onApril 22, 2015

本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下:

<?php
/**
 * 简单的文件缓存类
 *
 */
class XZCache{
 // default cache time one hour
 var $cache_time = 3600;
 // default cache dir
 var $cache_dir = './cache';
 public function __construct($cache_dir=null, $cache_time=null){
  $this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir;
  $this->cache_time = isset($cache_time) ? $cache_time : $this->cache_time;
 }
 public function saveCache ($key, $value){
  if (is_dir($this->cache_dir)){
   $cache_file = $this->cache_dir . '/xzcache_' . md5($key);
   $timedif = @(time() - filemtime($cache_file));
   if ($timedif >= $this->cache_time) {
    // cached file is too old, create new
    $serialized = serialize($value);
    if ($f = @fopen($cache_file, 'w')) {
     fwrite ($f, $serialized, strlen($serialized));
     fclose($f);
    }
   }
   $result = 1;
  }else{
   echo "Error:dir is not exist.";
   $result = 0;
  }
  return $result;
 }
 /**
  * @return array 
  *   0 no cache
  *    1 cached
  *    2 overdue
  */
 public function getCache ($key) {
  $cache_file = $this->cache_dir . '/xzcache_' . md5($key);
  if (is_dir($this->cache_dir) && is_file($cache_file)) {
   $timedif = @(time() - filemtime($cache_file));
   if ($timedif >= $this->cache_time) {
    $result['cached'] = 2;
   }else{
    // cached file is fresh enough, return cached array
    $result['value'] = unserialize(file_get_contents($cache_file));
    $result['cached'] = 1;
   }
  }else {
   echo "Error:no cache";
   $result['cached'] = 0;
  }
  return $result;
 }
} //end of class

用法示例如下:

$cache = new XZCache();
$key = 'global';
$value = $GLOBALS;
$cache->saveCache($key, $value);
$result = $cache->getCache($key);
var_dump($result);

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
Smarty安装配置方法
Apr 10 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
php define的第二个参数使用方法
Nov 04 PHP
php字符串过滤与替换小结
Jan 26 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
php中上传文件的的解决方案
Sep 25 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
PHP解决高并发问题
Apr 01 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 #PHP
PHP判断是否为空的几个函数对比
Apr 21 #PHP
php两种无限分类方法实例
Apr 21 #PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 #PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 #PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 #PHP
PHP使用递归生成文章树
Apr 21 #PHP
You might like
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
js验证上传图片的方法
2015/05/12 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
Linux下python制作名片示例
2018/07/20 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
护理学毕业生求职信
2013/11/14 职场文书
大学生先进事迹材料
2014/02/16 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
党员年终个人总结
2015/02/14 职场文书
2015年体育部工作总结
2015/04/02 职场文书
毕业实习证明范本
2015/06/16 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js