网络编程
位置:首页>> 网络编程>> php编程>> php文件缓存类用法实例分析

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

作者:邪云子  发布时间:2023-08-17 16:26:44 

标签:php,文件,缓存类

本文实例讲述了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程序设计有所帮助。

0
投稿

猜你喜欢

  • 一空间多域名绑定3种方法,HTML代码格式:<html> <script language=javascript
  • 什么是JSON http://www.json.org/json-zh.htmlJSON(Javascript Object Notatio
  • 本文探讨了提高MySQL数据库性能的思路,并从8个方面给出了具体的解决方法。1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,
  • 昨天晚上在家里把WM设计好的好台界面做成Html,在家里只用IE8和FF做了测试,感觉还行,除了感觉IE8还不成熟,渲染比较慢且不稳定外,标
  • 引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就
  • 这是来自于Steven D编写的WEB前端开发设计要点的内容。虽然许多设计师已非常熟练的使用了Web标准,让人遗憾的是有很多细节的排版处理仍
  • CAPTCHA,全称为“Completely Automated Public Turing test to tell Computers
  • 目的:JS+ASP打造无刷新新闻列表,下图所示的新闻列表相信大家并不少见,包括新闻的分页功能,本文要介绍的就是各分页间的切换方式。传统的方法
  • firefox不支持text-overflow一直让人很折腾。。不过还好有大虾为我们提供解决方案。。text-overflow: ellip
  • 引言提到 numpy 的数组操作,我们就不得不说到 np.concatenate() 函数,concatenate 一词在英文中是级联的意思
  • 十个免费的web前端开发工具网络技术发展迅速,部分技术难以保持每年都有新的工具出现,这同时也意味着许多旧的工具倒在了新技术的发展之路上。前端
  • 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
  • 1 Video介绍引用我翻译文档《在HTML5页面中嵌入音频和视频》中的介绍文字:“当今,在网页上嵌入视频且所有用户不管使用任何浏览器或者操
  • 使用Northwind 数据库首先查询Employees表查询结果:city列里面只有5个城市使用ROW_NUMBER() OVER(PAR
  • 零、本讲学习目标了解面向对象编程思想掌握类和对象的定义和使用了解Python中的对象一、面向对象(一)程序员“面向对象”在现实世界中存在各种
  • 看了cragle的《有没有必要将网站Div+Css重构?》的文章,有一些想法不说不快,我也在文章的评论里提到曾经开除过两个执着使用div技术
  • 问题你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,A
  • 今年我们的祖国多灾多难 雪灾的阴影还没散去又发生了地震。让我们用手中的画笔为5.12地震受灾同胞们祈福并号召大家为灾区人民捐款!中国插画网祈
  • 内容摘要:ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相
  • 在输入框里面预设一段提示文字,当焦点在输入框的时候清空这段文字,这在目前来说已经不是什么新鲜事了。淘宝的搜索框就用到了这样一种设计:这种设计
手机版 网络编程 asp之家 www.aspxhome.com