讲解
主要通过使用
# 开启缓冲区, 意味页面出header之外暂不输出,保存在缓冲区内.
ob_start();
# 获取缓冲区内容
ob_get_contents();
# 输出缓冲区内容, 将缓冲区中的内容一次性输出,不关闭缓存区.
ob_flush();
或者:
ob_end_flush(); # 送出内容同时关闭缓存区;
三个函数来实现;
<?php
# 页面静态化实例
date_default_timezone_set('PRC');
echo '修改时间: '. date('Y-m-d H:i:s',filemtime('./test.html')). ' | 当前时间: '. date('Y-m-d H:i:s', time());
echo '<hr>';
# 判断文件是否存在
$fileName = './test.html';
if(!file_exists($fileName) || (time() - (filemtime($fileName)+1) < 3)){
echo '读取缓存文件,获得HTML文件;';
return include './test.html';
}
echo '不是缓存文件';
# 文件不存或者已经过期
ob_start(); # 开始输出缓冲
# ob_start(); 此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。
$content = '
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome</title>
<meta charset="UTF-8" />
<meta name="keywords" content=" " />
<meta name="description" content=" " />
<link rel="stylesheet" type="text/css" href=" " />
<script type="text/javascript" src=" "></script>
<style>
</style>
</head>
<body>
<table border="1px solied red" style="width: 500px">
<tr>
<th>姓名</th>
<th>性别</th>
<th>职位</th>
</tr>
<tr>
<td>刘昊</td>
<td>男</td>
<td>研发</td>
</tr>
<tr>
<td>屌哥</td>
<td>男</td>
<td>研发</td>
</tr>
</table>
</body>
</html>
';
echo $content;
$content = ob_get_contents(); # 获取缓冲区的内容
file_put_contents('./test.html', $content);
ob_flush(); # 送出缓冲区的内容