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程序设计有所帮助。