php如何从整个网站生成html?
PHP从整个网站生成HTML纯静态页面如下:
代码如下:
& lt?服务器端编程语言(Professional Hypertext Preprocessor的缩写)
//在开头添加ob _ start();
ob _ start();
//这是您的代码。
//在末尾添加ob_end_clean(),并将此页输出到变量
$ temp = ob _ get _ contents();
ob _ end _ clean();
//写入文件
$ fp = fopen(‘文件名& # 39;,'w & # 39);
FWRITE ($ FP,$ temp)或Die(‘写入文件时出错& # 39;);
?& gt
这只是最基本的方法,但不是很实用,因为网站需要更新,HTML要定期重新生成。
使用下面的方法:代码如下:
if(file_exists(” xxx.html “))
{
$ time = time();
//如果文件修改时间与当前时间相差半小时,直接到html文件;否则,重新生成html。
if($ time-filemtime(” XXX . html “)& lt;30*60)
{
header(” Location:XXX . html “);
}
}
//在开头添加ob _ start();
ob _ start();
//页面的详细信息
//在末尾添加ob_end_clean(),并将此页输出到变量
$ temp = ob _ get _ contents();
ob _ end _ clean();
//写入文件
$ FP = fopen(‘ XXX . html & # 39;,'w & # 39);
FWRITE ($ FP,$ temp)或Die(‘写入文件时出错& # 39;);
//重定向
header(” Location:XXX . html “);
以下是对所使用的一些函数的介绍:
1.刷新:刷新缓冲区的内容并输出。
函数格式:flush()
说明:该功能经常使用,效率高。
2.打开输出缓冲区
函数格式:void ob_start(void)
注意:当缓冲区被激活时,所有来自PHP程序的非文件头信息将不被发送,而是保存在内部缓冲区中。要输出缓冲区的内容,可以使用ob_end_flush()或flush()来输出缓冲区的内容。
3.返回内部缓冲区的内容。
使用:stringbob _ get _ contents (void)
解释:这个函数将返回当前缓冲区的内容,如果输出缓冲区没有被激活,则返回FALSE。
4.返回内部缓冲区的长度。
使用:int ob_get_length(void)
注意:这个函数将返回当前缓冲区中的长度;与ob_get_contents一样,如果输出缓冲区未激活。则返回FALSE。
5.ob_end_flush:将内部缓冲区的内容发送到浏览器,关闭输出缓冲区。
使用:void ob_end_flush(void)
描述:这个函数发送输出缓冲区的内容(如果有的话)。
6.ob_end_clean:删除内部缓冲区的内容,关闭内部缓冲区。
用法:void ob_end_clean(void)
注意:这个函数不会输出内部缓冲区的内容,而是删除它!
7.ob_implicit_flush:打开或关闭绝对刷新。
use:void ob _ implicit _ flush([int flag])
说明:用过Perl的人都知道$
= x的意思,这个字符串可以打开/关闭缓冲区,ob_implicit_flush函数和那个一样。默认情况下,它关闭缓冲区。打开绝对输出后,每个脚本输出都直接发送到浏览器,所以不再需要调用flush()。