<p> 如今很多网站都是静态发布的,PHP当然也可以方便的实现静态发布喽,具体的实现方法很多,下面我就说说我会的两种方法。</p><p> 方法一:ob_get_contents()</p><p> 这是一种很方便的方法,也是很常用的方法,实现原理是:首先打开缓存,然后创建相应的静态页文件,写入缓存的内容,清空缓存。</p><p> 示例:</p><code><?php<br />ob_strart();#打开缓冲区<br />$fn=date('ymdhis').rand(1000,9999).'html';//生成文件名<br />require("supply.php");#载入要生成静态页的文件,因为后台有ob_clen()所以在不会显示出来<br />$fs=fopen($fn,'w');#打开静态页文件<br />fwrite($fs,ob_get_contents());#生成静态文件<br />ob_clean();#清空缓存<br />?></code></p><p> 方法二:file_get_contents();</p><code><?php<br />$fn=date('ymdhis').rand(1000,9999).'html';<br />$url= 'http://'.$_SERVER['HTTP_HOST']."/";#注意<br />$content=file_get_contents($url);<br />$fs=fopen($fn,'w');<br />fwrite($fs,$content);<br />?></code></p><p> 下面对上面的注意进行一下解释,如果在些你使用的是仅仅是文件名,而不是URL那么您这个文件中如果有使用引用文件比如require</p><p> ('header.php');那么header.php中的内容将会显示不出来。</p><p> 方法三:str_replace()</p><code><?php<br />$filemodel="supply.php"; 字串5$file=fopen($filemodel,"w+");<br />$temp=fread($file,filesize($filemodel));<br />$temp=str_replace("[title]",$title,$temp);<br />$temp=str_replace("[postTime]",$postTime,$temp);<br />$temp=str_replace("[content]",$content,$temp);<br />?></code></p><p> 该方法适用于很简单的页面,如果supply.php中有使用引用文件比如require('header.php');那么header.php中的内容将会显示不出来</p><p> 我仅仅是给出了最简单的方法,在实际应用中,您可以写一个生成静态页的类,在类中加入相应的异常处理,该文件仅仅给出一个示例。</p>