代码改变世界

PHP页面静态化

2012-04-05 16:01  少毅  阅读(329)  评论(0编辑  收藏  举报

项目中需要对文章页面进行静态化处理,使用了ob_start和ob_get_contents等函数,代码如下:

<?php
header("content-type:text/html;charset=utf-8");
$file = $_GET['url']; //获取要静态化页面url
$html = 'article.html'; //生成的静态化页面url
ob_start();
include("$file");
$temp=ob_get_contents();
//写入文件
$fp=fopen($html,'w');
fwrite($fp,$temp) or die('写文件错误');
fclose($fp);
ob_end_flush();
?>

然后在访问页面时通过一些逻辑判断是直接访问静态文件还是重新生成静态文件

PS:因为缓存问题,有时候即便我们重新生成了静态文件,却无法看到最新的页面,我们可以在访问的页面后面添加一个v参数,代表当前的一个版本号,当重新生成该页面后,版本号也要随之改变,这样就不会访问到旧的缓存页面了,通常我们可以获取文件的生成时间来作为版本号,所以访问index.html就变成访问index.html?r=111111,当重新生成静态文件后变成访问index.html?v=222222