明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用PHP完成WEB動(dòng)態(tài)頁(yè)面靜態(tài)

[摘要]在最近幾年,萬(wàn)維網(wǎng)(也稱環(huán)球信息網(wǎng),即WWW)不斷改變信息處理技術(shù)的面貌。WEB已經(jīng)快速地成為一種有效的媒介,并適合人們和商業(yè)溝通和協(xié)作。幾乎所有的信息技術(shù)領(lǐng)域都普遍受到WEB的影響。Web訪問(wèn)帶來(lái)更多用戶和更多數(shù)據(jù),這意味著給服務(wù)器和數(shù)據(jù)庫(kù)更多壓力和最終用戶得到越來(lái)越慢的響應(yīng)速度。與不斷靠增加C...
在最近幾年,萬(wàn)維網(wǎng)(也稱環(huán)球信息網(wǎng),即WWW)不斷改變信息處理技術(shù)的面貌。WEB已經(jīng)快速地成為一種有效的媒介,并適合人們和商業(yè)溝通和協(xié)作。幾乎所有的信息技術(shù)領(lǐng)域都普遍受到WEB的影響。Web訪問(wèn)帶來(lái)更多用戶和更多數(shù)據(jù),這意味著給服務(wù)器和數(shù)據(jù)庫(kù)更多壓力和最終用戶得到越來(lái)越慢的響應(yīng)速度。與不斷靠增加CPU,磁盤驅(qū)動(dòng)器及內(nèi)存來(lái)跟上這種增長(zhǎng)的需求相比, WEB動(dòng)態(tài)網(wǎng)頁(yè)面靜態(tài)化應(yīng)該是一個(gè)更實(shí)用,更經(jīng)濟(jì)的選擇。

用PHP實(shí)現(xiàn)WEB動(dòng)態(tài)網(wǎng)頁(yè)靜態(tài)化的具體實(shí)現(xiàn)函數(shù)如function gen_static_file()所示

function gen_static_file($program, $filename)
{
$program 1= "/usr/local/apache/htdocs/php/" . $program;
$filename1 = "/usr/local/apache/htdocs/ static_html/" . $filename;
$cmd_str = "/usr/local/php4/bin/php " . $program1 . " } " . $filename1 . " ";
system($cmd_str);
echo $filename . " generated.〈br〉";
}

這個(gè)函數(shù)是實(shí)現(xiàn)靜態(tài)化的關(guān)鍵,即PHP動(dòng)態(tài)頁(yè)面程序不是被送到瀏覽器中,而是輸入到名為$filename的文件中去(如圖2)。兩個(gè)參數(shù)中$program是PHP動(dòng)態(tài)頁(yè)面程序,$filename是生成的靜態(tài)頁(yè)面的名字(可根據(jù)需要自己制定命名規(guī)則,這一點(diǎn)很重要,見(jiàn)下文),/usr/local/php4/bin/php是PHP中具有把程序輸入文件功能的部分,System是PHP中執(zhí)行外部命令的函數(shù)。我們還可以看出所有生成動(dòng)態(tài)頁(yè)面的php程序需放在/php/目錄下,所有新產(chǎn)生的靜態(tài)頁(yè)面則會(huì)出現(xiàn)在/static_html/目錄下(這些路徑可以根據(jù)具體需要設(shè)置)。

下面讓我們舉個(gè)具體例子,看一下college_static.php的靜態(tài)頁(yè)面是怎樣生成的。

function gen_college_static ()
{
for ($i = 0; $i 〈= 32; $i++〉
{
putenv("province_id=" . $i); //*.php文件從數(shù)據(jù)庫(kù)取數(shù)據(jù)時(shí)要用到。
$filename = " college_static". $i . ".html";
gen_static_file("college_static.php", $filename);
}

從這個(gè)函數(shù)我們可以看到通過(guò)調(diào)用函數(shù)gen_static_file(), college_static.php經(jīng)過(guò)靜態(tài)化,變成了33個(gè)靜態(tài)頁(yè)面college.static0.html~college.static33.html,其中$filename會(huì)隨著$I的變化而變化。當(dāng)然也可以從數(shù)據(jù)庫(kù)中直接取值,來(lái)控制生成的靜態(tài)頁(yè)面的個(gè)數(shù)和名字,其他程序?qū)ι傻撵o態(tài)頁(yè)面的調(diào)用應(yīng)和靜態(tài)頁(yè)面的命名規(guī)則一致。