但定時(shí)生成就受到了一些局限性,大家如果有獨(dú)立服務(wù)器的能在服務(wù)器上設(shè)置計(jì)劃任務(wù),但如果是使用虛擬主機(jī)的可就不好辦了.雖然方法非常多.但使用起來(lái)簡(jiǎn)便容易的,我覺(jué)得還是先判斷已生成的首頁(yè)文件的生成時(shí)間和現(xiàn)有時(shí)間之間的差值,如果滿足某個(gè)值就開(kāi)始生成這種方法比較來(lái)得容易.不多說(shuō)了.開(kāi)始吧!
網(wǎng)上找到的,記一下。實(shí)踐證明,可用。
復(fù)制代碼代碼如下:
<?php
$nowtime=time();
$pastsec = $nowtime – $_GET["t"];
if($pastsec<60)
{
exit; //1分鐘更新一次,時(shí)間可以自己調(diào)整
}
ob_start(); //打開(kāi)緩沖區(qū)
include(”index.php”);
$content = ob_get_contents(); //得到緩沖區(qū)的內(nèi)容
$content .= “n<script language=javascript src=”f5.php?t=”.$nowtime.”"></script>”; //加上調(diào)用更新程序的代碼
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);
}
}
下面是一些解說(shuō):
在開(kāi)始之前還是提一下三個(gè)函數(shù)吧:"ob_start()、ob_end_clean()、ob_get_contents()"
復(fù)制代碼代碼如下:
ob_start():是打開(kāi)緩沖區(qū)的,就是要把你需要生成的靜態(tài)文件的內(nèi)容緩存在這里;
ob_get_contents():是讀出緩沖區(qū)里的內(nèi)容,下面有代碼為例;
ob_end_clean():這個(gè)比較重要,只有使用了這個(gè)函數(shù)后,緩沖區(qū)里的內(nèi)容才會(huì)讀取出來(lái);
[code]
if(file_exists("./index.htm"))//看靜態(tài)index.htm文件是否存在
{
$time=time();
//文件修改時(shí)間和目前時(shí)間相差?的話,直接導(dǎo)向htm文件,否則重新生成htm
if($time-filemtime("./index.htm")< 600)
{
header("Location:classhtml/main.htm");
}
}
//在你的開(kāi)始處加入ob_start();
ob_start();
//首頁(yè)內(nèi)容,就是你的動(dòng)態(tài)部分了
//在結(jié)尾加入ob_end_clean(),并把本頁(yè)輸出到一個(gè)變量中
$temp=ob_get_contents();
ob_end_clean();
//寫入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('寫文件錯(cuò)誤');
//echo"生成HTML完成!";
[html]