在最近幾年,全球資訊網(也稱環球資訊網,即WWW)不斷改變資訊處理技術的面貌。WEB已經快速地成為一種有效媒介,並適合人們和商業溝通和協作。幾乎所有的資訊技術領域都普遍受到WEB的影響。Web訪問帶來更多使用者和更多資料,這意味著給伺服器和資料庫更多壓力和終端使用者得到越來越慢的響應速度。與不斷靠增加CPU,磁碟機及記憶體來跟上這種增長的需求相比, WEB動態網頁面靜態化應該是一個更實用,更經濟的選擇。
用PHP實現WEB動態網頁靜態化的具體實現函數如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〉"; } |
這個函數是實現靜態化的關鍵,即PHP動態網頁面程式不是被送到瀏覽器中,而是輸入到名為$filename的檔案中去(如圖2)。兩個參數中$program是PHP動態網頁面程式,$filename是產生的靜態頁面的名字(可根據需要自己制定命名規則,這一點很重要,見下文),/usr/local/php4/bin/php是PHP中具有把程式輸入檔案功能的部分,System是PHP中執行外部命令的函數。我們還可以看出所有產生動態網頁面的php程式需放在/php/目錄下,所有新產生的靜態頁面則會出現在/static_html/目錄下(這些路徑可以根據具體需要設定)。
下面讓我們舉個具體例子,看一下college_static.php的靜態頁面是怎樣產生的。
function gen_college_static () { for ($i = 0; $i 〈= 32; $i++〉 { putenv("province_id=" . $i); //*.php檔案從資料庫取資料時要用到。 $filename = " college_static". $i . ".html"; gen_static_file("college_static.php", $filename); } |
從這個函數我們可以看到通過調用函數gen_static_file(), college_static.php經過靜態化,變成了33個靜態頁面college.static0.html~college.static33.html,其中$filename會隨著$I的變化而變化。當然也可以從資料庫中直接取值,來控制產生的靜態頁面的個數和名字,其他程式對產生的靜態頁面的調用應和靜態頁面的命名規則一致。