淘先锋技术网

首页 1 2 3 4 5 6 7
实 例:
include( "cache.php" );
$cache = new cache(30);
$cache->cacheCheck();
echo date("Y-m-d H:i:s");

$cache->caching();

 

代码
<? php
PHP缓存类 cache http://bbs.hfphp.org
class cache {
// 缓存目录
var   $cacheRoot   =   " ./cache/ " ;
// 缓存更新时间秒数,0为不缓存
var   $cacheLimitTime   =   0 ;
// 缓存<span href="tag.php?name=%E6%96%87%E4%BB%B6" target="_blank" rel="external nofollow"  οnclick="tagshow(event)" class="t_tag">文件</span>名
var   $cacheFileName   =   "" ;
// 缓存扩展名
var   $cacheFileExt   =   " php " ;

function  cache(  $cacheLimitTime  ) {
   
if intval $cacheLimitTime  ) )
   
$this -> cacheLimitTime  =   $cacheLimitTime ;
   
$this -> cacheFileName  =   $this -> getCacheFileName();
   
ob_start ();
}  

function  cacheCheck(){
   
if file_exists $this -> cacheFileName ) ) {
   
$cTime   =   $this -> getFileCreateTime(  $this -> cacheFileName );
   
if $cTime   +   $this -> cacheLimitTime  >   time () ) {
   
echo   file_get_contents $this -> cacheFileName );
   
ob_end_flush ();
   
exit ;
   }
   }
   
return   false ;
}

function  caching(  $staticFileName   =   ""  ){
   
if $this -> cacheFileName ) {
   
$cacheContent   =   ob_get_contents ();
   
// echo $cacheContent;
    ob_end_flush ();

   
if $staticFileName  ) {
   
$this -> saveFile(  $staticFileName ,   $cacheContent  );
   }

   
if $this -> cacheLimitTime )
   
$this -> saveFile(  $this -> cacheFileName ,   $cacheContent  );
   }
}  

function  clearCache(  $fileName   =   " all "  ) {
   
if $fileName   !=   " all "  ) {
   
$fileName   =   $this -> cacheRoot  .   strtoupper ( md5 ( $fileName )) . " . " . $this -> cacheFileExt;
   
if file_exists $fileName  ) ) {
   
return  @ unlink $fileName  );
   }
else   return   false ;
   }
   
if  (  is_dir $this -> cacheRoot ) ) {
   
if  (  $dir   =  @ opendir $this -> cacheRoot ) ) {
   
while  (  $file   =  @ readdir $dir  ) ) {
   
$check   =   is_dir $file  );
   
if  (  ! $check  )
   @
unlink $this -> cacheRoot  .   $file  );
   }
   @
closedir $dir  );
   
return   true ;
   }
else {
   
return   false ;
   }
   }
else {
   
return   false ;
   }
}

function  getCacheFileName() {
   
return   $this -> cacheRoot  .   strtoupper ( md5 ( $_SERVER [ " REQUEST_URI " ])) . " . " . $this -> cacheFileExt;
}

function  getFileCreateTime(  $fileName  ) {
   
if !   trim ( $fileName ) )  return   0 ;

   
if file_exists $fileName  ) ) {
   
return   intval ( filemtime $fileName  ));
   }
else   return   0 ;
}  

function  saveFile( $fileName ,   $text ) {
   
if !   $fileName   ||   !   $text  )  return   false ;

   
if $this -> makeDir(  dirname $fileName  ) ) ) {
   
if $fp   =   fopen $fileName ,   " w "  ) ) {
   
if ( @ fwrite $fp ,   $text  ) ) {
   
fclose ( $fp );
   
return   true ;
   }
else  {
   
fclose ( $fp );
   
return   false ;
   }
   }
   }
   
return   false ;
}

function  makeDir(  $dir ,   $mode   =   " 0777 "  ) {
   
if !   $dir  )  return   0 ;
   
$dir   =   str_replace " \\ " ,   " / " ,   $dir  );
  
   
$mdir   =   "" ;
   
foreach explode " / " ,   $dir  )  as   $val  ) {
   
$mdir   .=   $val . " / " ;
   
if $val   ==   " .. "   ||   $val   ==   " . "   ||   trim $val  )  ==   ""  )  continue ;
  
   
if !   file_exists $mdir  ) ) {
   
if ( ! @ mkdir $mdir ,   $mode  )){
   
return   false ;
   }
   }
   }
   
return   true ;
}
}
?>


来源:合肥网产品小组  http://lab.wehefei.com

 

转载于:https://www.cnblogs.com/jincon/archive/2010/08/06/1794448.html