写了一个demo,供大家参考,具体代码如下:
header("content-type:text/html;charset=utf8");
// 拼接文件路径.
$dir = "./cache/";
if ( !is_dir($dir) ) {
mkdir($dir);
}
$url = $dir . intval($_GET['id']);
// 文件是否存在,存在直接读取并输出文件.
if (file_exists($url)) {
// 文件创建时间.
$ctime = filemtime($url);
// 文件是否过期,过期删除.
if(time() - $ctime > 36) {
unlink($url);
} else {
echo file_get_contents($url);
echo 1;
exit;
}
}
// 开启缓冲区.
ob_start();
// PDO链接mysql读取数据.
$db = new PDO("mysql:host=127.0.0.1;dbname=test", 'root', '123456');
$re = $db->query("select * from bank");
$info = $re->fetchAll(PDO::FETCH_ASSOC);
// 展示页面.
?>
<html>
<head>
<title>静态化</title>
</head>
<body>
<table cellspacing="0" border="1">
<tr>
<th>name</th>
<th>money</th>
</tr>
<?php foreach ($info as $v) { ?>
<tr>
<td><?php echo $v['name']; ?></td>
<td><?php echo $v['money']; ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
<?php
// 获取缓冲区内容.
$mess = ob_get_contents();
// 关闭缓冲区并清空缓冲区内容
ob_end_clean();
/**
* ob_clean 清空缓冲区内容.
* ob_end_clean 关闭并清空缓冲区内容.
* ob_flush 将缓冲区内容输出并清空缓冲区.
* ob_end_flush 关闭将缓冲区内容输出并清空缓冲区.
*/
echo $mess;
// 缓冲区内容写入文件.
file_put_contents($url, $mess);
echo 2;
直接访问 就能看到想要的结果了。
只是提供一个参考方案,具体请根据实际业务进行实践!!!