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 ;
}
}
?>
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