明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用PHP完成WEB動態(tài)頁面靜態(tài)化

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

用PHP實現(xiàn)WEB動態(tài)網(wǎng)頁靜態(tài)化的具體實現(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〉";
}


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

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


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


從這個函數(shù)我們可以看到通過調用函數(shù)gen_static_file(), college_static.php經(jīng)過靜態(tài)化,變成了33個靜態(tài)頁面college.static0.html~college.static33.html,其中$filename會隨著$I的變化而變化。當然也可以從數(shù)據(jù)庫中直接取值,來控制生成的靜態(tài)頁面的個數(shù)和名字,其他程序對生成的靜態(tài)頁面的調用應和靜態(tài)頁面的命名規(guī)則一致。