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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 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 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php SQL Injection with MySQL
2011/02/27 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python实现五子棋游戏
2019/06/18 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
django修改models重建数据库的操作
2020/03/31 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
C语言50道问题
2014/10/23 面试题
小学教师2014年度工作总结
2014/12/03 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
工作岗位职责范本
2015/02/15 职场文书
讲座通知范文
2015/04/23 职场文书
刑事起诉书范文
2015/05/19 职场文书