您的位置:首页 > 其它

静态化

2016-01-16 10:33 225 查看
写了一个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;

直接访问  就能看到想要的结果了。
只是提供一个参考方案,具体请根据实际业务进行实践!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ob 静态化 缓存