用 PHP 输出静态页面的方法, 就我所知道的, 有 2 种, 一种是利用模板技术, 另一种是用 ob 系列函数两种方法, 看起来都差不多, 但是实际上, 却是不同的
第一种: 利用模板目前 PHP 的模板可以说是很多了, 有功能强大的 smarty, 还有简单易用的 smarttemplate 等它们每一种模板, 都有一个获取输出内容的函数我们生成静态页面的方法, 就是利用了这个函数用这个方法的优点是, 代码比较清晰, 可读性好
这里我用 smarty 做例子, 说明如何生成静态页
代码如下:
- 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);
- ?>
第二种方法: 利用 ob 系列的函数这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(), 其中 ob_start() 是打开浏览器缓冲区的意思, 打开缓冲后, 所有来自 PHP 程序的非文件头信息均不会发送, 而是保存在内部缓冲区, 直到你使用了 ob_end_flush(). 而这里最重要的一个函数, 就是 ob_get_contents(), 这个函数的作用是获取缓冲区的内容, 相当于上面的那个 fetch(), 道理一样的代码:
代码如下:
- ob_start();
- echo "Hello World!";
- $content = ob_get_contents();// 取得 php 页面输出的全部内容
- $fp = fopen("archives/2005/05/19/0001.html", "w");
- fwrite($fp, $content);
- fclose($fp);
- ?>
来源: https://www.php1.cn/detail/php-a7bbd07950.html