文件缓存

全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:924篇文章
  • 发布时间:2021年03月05日 21:35:10
  • 所属分类:PHP+MySql
  • 阅读次数:2332次阅读
  • 标签:

代码

Head.php

<?php
define('CACHE_EXPIRE',1800);  //设置过期时间
define('CACHE_PATH',$_SERVER['DOCUMENT_ROOT'].'/cache/'); //设置缓存目录
define('REFRESH_EXPIRE',10);  
is_dir(CACHE_PATH) or mkdir(CACHE_PATH,0777);
//该方法是获得用户的刷新次数,如果用户连续两次刷新,那么就显示最新内容
function refreshTimes(){
    $currentUrl='http://'.$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];
    if(isset($_COOKIE['refreshTimes'])){
        $cookArray=explode("\t",$_COOKIE['refreshTimes']);
        if(isset($cookArray[1]) and $_SERVER['REQUEST_TIME'] - (int)$cookArray[1] < REFRESH_EXPIRE and isset($cookArray[0]) and $cookArray[0] == $currentUrl){
            setcookie('refreshTimes',$currentUrl."\t".$_SERVER['REQUEST_TIME']."\t".(string)((int)$cookArray[2]+1),0,'/');
            return (int)$cookArray[2];
        }else{
            setcookie('refreshTimes',$currentUrl."\t".$_SERVER['REQUEST_TIME']."\t1",0,'/');
        return 0;
        }
    }else{
        setcookie('refreshTimes',$currentUrl."\t".$_SERVER['REQUEST_TIME']."\t1",0,'/');
        return 0;
    }
}
 
$key = md5($_SERVER['REQUEST_URI']);
$path = CACHE_PATH.$key;

if(is_file($path)
 and filemtime($path)+CACHE_EXPIRE > $_SERVER['REQUEST_TIME']
 and refreshTimes() == 0
 ){
    readfile($path);
    exit();
}

ob_start();
?>

foot.php

<?php

$html = ob_get_contents();
ob_clean();

file_put_contents($path,$html);

echo $html;

?>

test.php

<?php
include 'head.php';

$title = "Hello world~";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title><?php echo $title?></title>
</head>

<body>
<?php
echo "是大方大方";
?>
</body>
</html>
<?php
include 'foot.php';
?>

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 固定链接:恒富网 » 《文件缓存》
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!