PHP定時(shí)自動(dòng)生成靜態(tài)HTML的實(shí)現(xiàn)代碼
更新時(shí)間:2010年06月20日 23:40:02 作者:
為了提高網(wǎng)站的訪問速度,我們往往采用生成靜態(tài)的方式來實(shí)現(xiàn),這樣確實(shí)把網(wǎng)站的訪問速度提高了非常多.
但定時(shí)生成就受到了一些局限性,大家如果有獨(dú)立服務(wù)器的能在服務(wù)器上設(shè)置計(jì)劃任務(wù),但如果是使用虛擬主機(jī)的可就不好辦了.雖然方法非常多.但使用起來簡(jiǎn)便容易的,我覺得還是先判斷已生成的首頁文件的生成時(shí)間和現(xiàn)有時(shí)間之間的差值,如果滿足某個(gè)值就開始生成這種方法比較來得容易.不多說了.開始吧!
網(wǎng)上找到的,記一下。實(shí)踐證明,可用。
<?php
$nowtime=time();
$pastsec = $nowtime – $_GET["t"];
if($pastsec<60)
{
exit; //1分鐘更新一次,時(shí)間可以自己調(diào)整
}
ob_start(); //打開緩沖區(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);
}
}
下面是一些解說:
在開始之前還是提一下三個(gè)函數(shù)吧:"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打開緩沖區(qū)的,就是要把你需要生成的靜態(tài)文件的內(nèi)容緩存在這里;
ob_get_contents():是讀出緩沖區(qū)里的內(nèi)容,下面有代碼為例;
ob_end_clean():這個(gè)比較重要,只有使用了這個(gè)函數(shù)后,緩沖區(qū)里的內(nèi)容才會(huì)讀取出來;
[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");
}
}
//在你的開始處加入ob_start();
ob_start();
//首頁內(nèi)容,就是你的動(dòng)態(tài)部分了
//在結(jié)尾加入ob_end_clean(),并把本頁輸出到一個(gè)變量中
$temp=ob_get_contents();
ob_end_clean();
//寫入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('寫文件錯(cuò)誤');
//echo"生成HTML完成!";
[html]
網(wǎng)上找到的,記一下。實(shí)踐證明,可用。
復(fù)制代碼 代碼如下:
<?php
$nowtime=time();
$pastsec = $nowtime – $_GET["t"];
if($pastsec<60)
{
exit; //1分鐘更新一次,時(shí)間可以自己調(diào)整
}
ob_start(); //打開緩沖區(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);
}
}
下面是一些解說:
在開始之前還是提一下三個(gè)函數(shù)吧:"ob_start()、ob_end_clean()、ob_get_contents()"
復(fù)制代碼 代碼如下:
ob_start():是打開緩沖區(qū)的,就是要把你需要生成的靜態(tài)文件的內(nèi)容緩存在這里;
ob_get_contents():是讀出緩沖區(qū)里的內(nèi)容,下面有代碼為例;
ob_end_clean():這個(gè)比較重要,只有使用了這個(gè)函數(shù)后,緩沖區(qū)里的內(nèi)容才會(huì)讀取出來;
[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");
}
}
//在你的開始處加入ob_start();
ob_start();
//首頁內(nèi)容,就是你的動(dòng)態(tài)部分了
//在結(jié)尾加入ob_end_clean(),并把本頁輸出到一個(gè)變量中
$temp=ob_get_contents();
ob_end_clean();
//寫入文件
$fp=fopen("./index.htm",'w');
fwrite($fp,$temp) or die('寫文件錯(cuò)誤');
//echo"生成HTML完成!";
[html]
您可能感興趣的文章:
- PHP生成HTML靜態(tài)頁面實(shí)例代碼
- 采用thinkphp自帶方法生成靜態(tài)html文件詳解
- 用PHP生成靜態(tài)HTML速度快類庫
- PHP批量生成靜態(tài)HTML的簡(jiǎn)單原理和方法
- PHP 動(dòng)態(tài)生成靜態(tài)HTML頁面示例代碼
- PHP將整個(gè)網(wǎng)站生成HTML純靜態(tài)網(wǎng)頁的方法總結(jié)
- php將數(shù)據(jù)庫中所有內(nèi)容生成靜態(tài)html文檔的代碼
- 通用PHP動(dòng)態(tài)生成靜態(tài)HTML網(wǎng)頁的代碼
- php添加文章時(shí)生成靜態(tài)HTML文章的實(shí)現(xiàn)代碼
- 利用PHP生成靜態(tài)html頁面的原理
相關(guān)文章
深入理解curl類,可用于模擬get,post和curl下載
本篇文章是對(duì)curl類,可用于模擬get,post和curl下載進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06