生成静态文件的原理:
1.先开启缓存 ob_start();
//在php页面最顶部开启
2.通过ob_get_contents()函数 获取缓冲区的内容
//在php页面结束处使用来获取页面的内容
3.获取缓存区内容后,然后使用ob_end_clean ()
//清除缓冲区并关闭输出缓冲
$content=ob_end_clean();
4.设置要生成静态文件的文件名和路径,以可以写入的方式打开
如 $path="index.html";
$fp=fopen($path,'w');
5.最后通过fwrite()将获取的缓冲的内容写入到要生成的文件
fwrite($fp,$content);
到此页面就已经生成了
只要每次运行php页面他就会生成文件并且覆盖相同的文件名,但此时php文件是无法查看内容的
所以需要在后台给个生成静态文件的入口,用来操作运行指定的php文件
可以通过file_get_contents (url);
只要在后台运行一下这个url那么就生成了一个新的文件
要实现全站静态,前台的所有php文件名,以及相应的分页,列表都要换成可以链接的html路径
下面是一个静态文件的生成类
class static_page(){
public $path;
public $page;
//定义一个生成静态文件的方法
function
admin_commit()
{
$file_url=$this->path.$this->page;
$out1 =
ob_get_contents();
ob_end_clean();
$fp =
fopen($file_url,"w");
if(!$fp)
{
echo
"System Error";
exit();
}
else
{
fwrite($fp,$out1);
fclose($fp);
//echo "Success";
//header("Location: $file_url"); //后台执行静态化不跳转
}
}
}
?>
//静态类的使用
1.在php文件开始部位(这里指含有html的php文件),写上下面的代码
//引用静态类文件
include "include/jthtml.php";
//实例化静态类
$static=new static_page();
if($_GET[page]){
$static_page="brand".$_GET[page].".html";
}else{
$static_page="brand.html";
}
$static->page=$static_page;
//$static->select(4);
ob_start();
?>
2.php文件的最末尾调用下面这段代码
//在php最未出调用静态方法
$static->admin_commit();
?>
?>
3.运行php文件就会想要按照规则生成一个静态的html文件,为了方便可以在后台写些方法,给几个按钮相应的生成对应栏目的静态文件(实际上就是对应的刷新要生成静态文件的php文件)。