php

位置:IT落伍者 >> php >> 浏览文章

PHP将整个网站生成HTML静态


发布日期:2018年09月02日
 
PHP将整个网站生成HTML静态

其实实现的方法很简单


php;"><?php //在你的开始处加入 ob_start(); ob_start(); //以下是你的代码 //在结尾加入 ob_end_clean()并把本页输出到一个变量中 $temp = ob_get_contents(); ob_end_clean(); //写入文件 $fp = fopen(‘文件名’w’); fwrite($fp$temp) or die(‘写文件错误’); ?>


这只是最基本的方法还不是很实用因为网站是要更新的要定期重新生成HTML

下面是我用的方法

if(file_exists("xxxhtml"))
{
$time = time();

//文件修改时间和现在时间相差半小时一下的话直接导向html文件否则重新生成html
if($time filemtime("xxxhtml") < *)
{
header("Location:xxxhtml");
}
}
//在你的开始处加入 ob_start();
ob_start();

//页面的详细内容
//在结尾加入 ob_end_clean()并把本页输出到一个变量中
$temp = ob_get_contents();
ob_end_clean();

//写入文件
$fp = fopen(‘xxxhtml’w’);
fwrite($fp$temp) or die(‘写文件错误’);

//重新导向
header("Location:xxxhtml");


下面是一些用到的函数的介绍
Flush刷新缓沖区的内容输出
函数格式flush()
说明这个函数经常使用效率很高
ob_start 打开输出缓沖区
函数格式void ob_start(void)
说明当缓沖区激活时所有来自PHP程序的非文件头信息均不会发送而是保存在内部缓沖区为了输出缓沖区的内容可以使用ob_end_flush()或flush()输出缓沖区的内容
ob_get_contents 返回内部缓沖区的内容
使用方法string ob_get_contents(void)
说明这个函数会返回当前缓沖区中的内容如果输出缓沖区没有激活则返回 FALSE
ob_get_length返回内部缓沖区的长度
使用方法int ob_get_length(void)
说明这个函数会返回当前缓沖区中的长度和ob_get_contents一样如果输出缓沖区没有激活则返回 FALSE
ob_end_flush 发送内部缓沖区的内容到浏览器并且关闭输出缓沖区
使用方法void ob_end_flush(void)
说明这个函数发送输出缓沖区的内容(如果有的话)
ob_end_clean删除内部缓沖区的内容并且关闭内部缓沖区
使用方法void ob_end_clean(void)
说明这个函数不会输出内部缓沖区的内容而是把它删除!
ob_implicit_flush打开或关闭绝对刷新
使用方法void ob_implicit_flush ([int flag])
说明使用过Perl的人都知道$|=x的意义这个字符串可以打开/关闭缓沖区而ob_implicit_flush函数也和那个一样默认为关闭缓沖区打开绝对输出后每个脚本输出都直接发送到浏览器不再需要调用 flush()

               

上一篇:64位系统php运行报错

下一篇:PHP 伪静态技术原理以及突破原理实现介绍