目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单的smarttemplate等。
它们每一种模板,都有一个获取输出内容的函数。
生成静态页面的方法,就是利用了这个函数。
用这个方法的优点是,代码比较清晰,可读性好:
require("smarty/Smarty.class.php");
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
根据不同的情况,动态的输出html字符串到一个服务器端文件,然后再在服务器端重定向到这个新生成的文本文件。
//获取要生成静态页面的内容,这里url可以是php
$content = file_get_contents('http://www.w3school.com.cn/php/');
//将内容写入到以时间命名的html文件中
if (file_put_contents(date('YmdHis').'.html',$content)){
echo 'success';
} else {
echo 'fail';
}
?>
这里是一段非常简单的,没有其他业务逻辑的代码,不过html的生成原理是一样的