php 生成静态页面的办法与实现代码详细版
前端之家收集整理的这篇文章主要介绍了
php 生成静态页面的办法与实现代码详细版,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP中主要用到的就是要用到fread()和fwirte()。而静态页面生成了之后,就会牵扯到修改的问题。这里可以用到正则匹配的方法来替换模版中改变的部位。不过此种方法太麻烦,值得推荐的方法是直接把原来生成的模版砍掉,重新生成,呵呵,真正的一了百了。
还需要说明的一点就是,这种生成静态页面的方法一般都用于那些变化不是很频繁的页面,比如信息的最终页面。而针对列表页,如果信息更新不是很频繁的话,也是可取的。现在网上流行好多可以生成静态页面的blog或者论坛程序,都是通过手动点击后台“生成html页”的按钮来“半自动”生成html的。而对一些信息量非常大的门户网站,则行不通。因为静态页之所以叫“静态”,是因为其不可自动改变。如果信息列表每天更新100次,那么静态的列表页就要重新生成100次。如果我有10个这样的栏目,那想想也够吐血的了。
好了,闲话少说,现在来看看实际的程序演示:
first:是一个利用ob函数来实现的,代码比较简单,效率相对也高一些。
<div class="codetitle"><a style="CURSOR: pointer" data="21203" class="copybut" id="copybut21203" onclick="doCopy('code21203')"> 代码如下:
<div class="codebody" id="code21203">
<?
PHP ob_start();
@readfile("
http://tools.jb51.cc/");
$text = ob_get_flush();
$myfile = fopen("myfile.html","w");
$text =
str_replace ("{counent}",$string,$text);
fwrite($myfile,$text);
ob_clean();
?>
因为就算要
生成静态页面,动态读取那部分也是要保留的,把数据插入
数据库后,把url传递给readfile
函数,然后读入缓存,fwrite一下就可以
生成静态页面,这个是驼驼最欣赏的一种作法。
代码行数最少,效率最高。
http://tools.jb51.cc/是一个裸页,也就是单纯的内容,没有头,尾,
菜单。这样才能比较自由的定制自己的模版myfile.html。如果仅仅是要求
生成静态页的话,这样基本上就满足需求了。
second:普通
生成静态html页。
这种作法就是按部就班的来做,fread进来
页面,然后str_replace替换
首先是创建最终
内容页:
PHP代码 <div class="codetitle">
<a style="CURSOR: pointer" data="12917" class="copybut" id="copybut12917" onclick="doCopy('code12917')"> 代码如下: <div class="codebody" id="code12917">
<?
PHP $title = "
http://siyizhu.com测试模板";
$file = "TwoMax Inter test templet,
author:[email=Matrix@Two_Max]Matrix@Two_Max[/email]";
$fp = fopen ("temp.html","r");
$content = fread($fp,filesize ("temp.html"));
$content = str_replace("{file}",$file,$content);
$content = str_replace("{title}",$title,$content);
$filename = "test/test.html";
$handle = fopen ($filename,"w"); //打开
文件指针,创建
文件 /
检查文件是否被创建且可写 /
if (!is_writable ($filename))
{
die ("
文件:".$filename."不可写,请检查其
属性后重试!");
}
if (!fwrite ($handle,$content))
{ //将信息写入
文件 die ("
生成文件".$filename."失败!");
}
fclose ($handle); //
关闭指针
die ("创建
文件".$filename."成功!");
?>