php文件缓存类用法实例分析
本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下:
<?php
/**
*简单的文件缓存类
*
*/
classXZCache{
//defaultcachetimeonehour
var$cache_time=3600;
//defaultcachedir
var$cache_dir='./cache';
publicfunction__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;
}
publicfunctionsaveCache($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){
//cachedfileistooold,createnew
$serialized=serialize($value);
if($f=@fopen($cache_file,'w')){
fwrite($f,$serialized,strlen($serialized));
fclose($f);
}
}
$result=1;
}else{
echo"Error:dirisnotexist.";
$result=0;
}
return$result;
}
/**
*@returnarray
*0nocache
*1cached
*2overdue
*/
publicfunctiongetCache($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{
//cachedfileisfreshenough,returncachedarray
$result['value']=unserialize(file_get_contents($cache_file));
$result['cached']=1;
}
}else{
echo"Error:nocache";
$result['cached']=0;
}
return$result;
}
}//endofclass
用法示例如下:
$cache=newXZCache(); $key='global'; $value=$GLOBALS; $cache->saveCache($key,$value); $result=$cache->getCache($key); var_dump($result);
希望本文所述对大家的php程序设计有所帮助。