壹是使用模板技術,二是使用ob系列函數。這兩種方法看起來相似,但實際上是不同的。
第壹種:使用模板。
目前有很多PHP模板,包括功能強大的smarty和簡單易用的smart?模板等等。
它們中的每壹個都有壹個獲取輸出內容的函數。
我們生成靜態頁面的方法就是使用這個函數。
這種方法的優點是代碼清晰易讀。
這裏我用smarty作為例子來說明如何生成壹個靜態頁面。
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
require(' smarty/smarty . class . PHP ');
$t?=?新的?自作聰明;
$ t->;assign("title ","妳好?世界!”);
$內容?=?$ t->;fetch(" templates/index . htm ");
//這裏?fetch()?是獲取輸出內容的函數,現在在$content變量中,它是要顯示的內容
$fp?=?fopen(" archives/2005/05/19/0001 . html ",“w”);
fwrite($fp,?$ content);
fclose($ FP);
& gt
第二種方法:使用ob系列函數。
這裏使用的主要功能是什麽?ob_start(),?ob_end_flush(),?ob_get_content(),
其中ob_start()表示打開瀏覽器緩沖區,
當打開緩沖時,所有來自PHP程序的非頭信息都不會被發送。
在使用ob_end_flush()之前,它壹直保存在內部緩沖區中。
而這裏最重要的函數是ob_get_contents()。
這個函數用於獲取緩沖區的內容,相當於上面的fetch()。
道理是壹樣的。代碼:
& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)
ob _ start();
回聲?“餵?世界!”;
$內容?=?ob _ get _ contents();//獲取php頁面輸出的所有內容。
$fp?=?fopen("0001.html ",“w”);
fwrite($fp,?$ content);
fclose($ FP);
& gt