也用PHP來(lái)實(shí)現網(wǎng)頁(yè)靜態(tài)發(fā)布的兩種方法
如今很多網(wǎng)站都是靜態(tài)發(fā)布的,PHP當然也可以方便的實(shí)現靜態(tài)發(fā)布嘍,具體的實(shí)現方法很多,下面我就說(shuō)說(shuō)我會(huì )的兩種方法。
方法一:ob_get_contents()
這是一種很方便的方法,也是很常用的方法,實(shí)現原理是:首先打開(kāi)緩存,然后創(chuàng )建相應的靜態(tài)頁(yè)文件,寫(xiě)入緩存的內容,清空緩存。
示例:
<?php
ob_strart();#打開(kāi)緩沖區
$fn=date(‘ymdhis‘).rand(1000,9999).‘html‘;//生成文件名
require("supply.php");#載入要生成靜態(tài)頁(yè)的文件,因為后臺有ob_clen()所以在不會(huì )顯示出來(lái)
$fs=fopen($fn,‘w‘);#打開(kāi)靜態(tài)頁(yè)文件
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);
?>
下面對上面的注意進(jìn)行一下解釋?zhuān)绻谛┠闶褂玫氖莾H僅是文件名,而不是URL那么您這個(gè)文件中如果有使用引用文件比如require
(‘header.php‘);那么header.php中的內容將會(huì )顯示不出來(lái)。
方法三: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);
?>
該方法適用于很簡(jiǎn)單的頁(yè)面,如果supply.php中有使用引用文件比如require(‘header.php‘);那么header.php中的內容將會(huì )顯示不出來(lái)
我僅僅是給出了最簡(jiǎn)單的方法,在實(shí)際應用中,您可以寫(xiě)一個(gè)生成靜態(tài)頁(yè)的類(lèi),在類(lèi)中加入相應的異常處理,該文件僅僅給出一個(gè)示例。
搜索更多相關(guān)主題的帖子:網(wǎng)頁(yè) 靜態(tài) PHP
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。