background image

php  简单的缓存全站函数介绍

<?php
function cache_page($refresh=20){
ob_start();//开启缓冲区
$hash=sha1($_SERVER['PHP_SELF'].’|G|’.serialize($_GET).’|
P|’.serialize($_POST)); //缓存文件名字
$file=dirname(__FILE__).’/cache/’.$hash;//缓存文件路径
if(!file_exists($file)) {//缓存文件不存在
   register_shutdown_function(‘cache_page_go’,$file);
}else{// 缓存文件存在
   if( (time()-filemtime($file))>$refresh ){//缓存超时
    register_shutdown_function(‘cache_page_go’,$file);// 调用函数
   }
   else{//正常使用缓存文件
    $f=file_get_contents($file);// 取出缓存文件内容
    echo $f.’

缓存的哦 ;//输出缓存内容

    $output=ob_get_contents(); //取出缓冲区内容
    ob_get_clean();    //清空缓冲区
    echo $output;      //输出
    exit();
   }
}
}
function cache_page_go($file){
$output=ob_get_contents();//获取缓冲区内容
   ob_get_clean();           //清空缓冲区
   file_put_contents($file,$output,LOCK_EX);//写入缓存文件
   echo $output.’

新建的哦 ;//输出缓存内容

   exit();
}
?>