也用PHP來實現網頁靜態(tài)發(fā)布的兩種方法如今很多網站都是靜態(tài)發(fā)布的,,PHP當然也可以方便的實現靜態(tài)發(fā)布嘍,具體的實現方法很多,,下面我就說說我會的兩種方法,。
方法一:ob_get_contents() 這是一種很方便的方法,也是很常用的方法,,實現原理是:首先打開緩存,然后創(chuàng)建相應的靜態(tài)頁文件,寫入緩存的內容,,清空緩存,。 示例: <?php ob_strart();#打開緩沖區(qū) $fn=date(‘ymdhis‘).rand(1000,9999).‘html‘;//生成文件名 require("supply.php");#載入要生成靜態(tài)頁的文件,因為后臺有ob_clen()所以在不會顯示出來 $fs=fopen($fn,‘w‘);#打開靜態(tài)頁文件 fwrite($fs,ob_get_contents());#生成靜態(tài)文件 ob_clean();#清空緩存 ?> 方法二:file_get_contents(); <?php $fn=date(‘ymdhis‘).rand(1000,9999).‘html‘; $url= ‘http://‘.$_SERVER[‘HTTP_HOST‘]."/";#注意 $content=file_get_contents($url); $fs=fopen($fn,‘w‘); fwrite($fs,$content); ?> 下面對上面的注意進行一下解釋,,如果在些你使用的是僅僅是文件名,,而不是URL那么您這個文件中如果有使用引用文件比如require (‘header.php‘);那么header.php中的內容將會顯示不出來。 方法三:str_replace() <?php $filemodel="supply.php"; 字串5$file=fopen($filemodel,"w+"); $temp=fread($file,filesize($filemodel)); $temp=str_replace("[title]",$title,$temp); $temp=str_replace("[postTime]",$postTime,$temp); $temp=str_replace("[content]",$content,$temp); ?> 該方法適用于很簡單的頁面,,如果supply.php中有使用引用文件比如require(‘header.php‘);那么header.php中的內容將會顯示不出來 我僅僅是給出了最簡單的方法,,在實際應用中,您可以寫一個生成靜態(tài)頁的類,,在類中加入相應的異常處理,,該文件僅僅給出一個示例。 |
|