首頁  >  文章  >  後端開發  >  http://67.220.92.14/forum/inde PHP定時自動產生靜態HTML的實作程式碼

http://67.220.92.14/forum/inde PHP定時自動產生靜態HTML的實作程式碼

WBOY
WBOY原創
2016-07-29 08:43:031412瀏覽

但定時生成就受到了一些限制,大家如果有獨立伺服器的能在伺服器上設定計劃任務,但如果是使用虛擬主機的可就不好辦了.雖然方法非常多.但使用起來簡便容易的,我覺得還是先判斷已產生的首頁文件的生成時間和現有時間之間的差值,如果滿足某個值就開始生成這種方法比較來得容易.不多說了.開始吧!
網上找到的,記一下。實踐證明,可用。

複製程式碼 程式碼如下:


$nowtime=time(); $pastsec>$pastsec = $nowtime – $_GET["t"];
if($pastsec{
exit; //1分鐘更新一次,時間可以自行調整
}
ob_start (); //開啟緩衝區
include(”index.php”);
$content = ob_get_contents(); //得到緩衝區的內容
$content .= “n”; //加上呼叫更新程式的程式碼
file_put_contents(”index.html”,$content);
if (!function_exists(”file_put_contents”))
{
function file_put_contents($fn,$fs)
{
$fp=fopen($fn,”w+”);
fputs($fp,$fs);
fclose($fp);
}
}

下面是一些解說:
在開始之前還是先提一下三個函數吧:"ob_start()、ob_end_clean()、ob_get_contents()"

複製程式碼 程式碼如下:


程式碼如下:


ob_ob ():是開啟緩衝區的,就是要把你需要產生的靜態檔案的內容快取在這裡;

ob_get_contents():是讀出緩衝區裡的內容,下面有程式碼為例;
ob_end_clean (): 這個比較重要,只有使用了這個函數後,緩衝區裡的內容才會讀取出來;


[code]
if(file_exists("./index.htm "))//看靜態index.htm文件是否存在
{
$time=time();
//文件修改時間和目前時間相差?的話,直接導向htm文件,否則重新生成htm
if($time-filemtime("./index.htm"){
header("Location:classhtml/main.htm");
}
}
//在你的開始處加入ob_start();
ob_start();
//首頁內容,就是你的動態部分了
//在結尾加入ob_end_clean(),並把本頁輸出到一個變數
$temp=ob_get_contents();
ob_end_clean();
//寫入檔案
$fp=fopen("./index.htm",'w ');

fwrite($fp,$temp) or die('寫檔案錯誤');

//echo"產生HTML完成! ";

[html]

以上就介紹了http://67.220.92.14/forum/inde PHP定時自動產生靜態HTML的實作程式碼,包括了http://67.220.92.14/forum/inde方面的內容,希望對PHP教學有興趣的朋友有所幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn