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 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 PHP
Swoole扩展的6种模式深入详解
Mar 04 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
解析php中memcache的应用
2013/06/18 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python打包成so文件过程解析
2019/09/28 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Python实现结构体代码实例
2020/02/10 Python
python Canny边缘检测算法的实现
2020/04/24 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
个人培训总结
2015/03/05 职场文书
工作犯错保证书
2015/05/11 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
学生病假条怎么写
2015/08/17 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
配置Kubernetes外网访问集群
2022/03/31 Servers