用PHP輸出靜態頁面的兩種方法

第一種:利用模板。

目前PHP的模板可以說是很多了,有功能強大的smarty,還有簡單易用的smarttemplate等。它們每一種模板,都有一個獲取輸出內容的函數。我們生成靜態頁面的方法,就是利用了這個函數。用這個方法的優點是,代碼比較清晰,可讀性好。

這裏我用smarty做例子,說明如何生成靜態頁
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//這裏的 fetch() 就是獲取輸出內容的函數,現在$content變量裏面,就是要顯示的內容了
$fp = fopen("archives/2008/05/01/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>


第二種方法:利用ob系列的函數。

這裏用到的函數主要是 ob_start(), ob_end_flush(), ob_get_content(),其中ob_start()是打開瀏覽器緩衝區的意思,打開緩衝後,所有來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩衝區,直到你使用了ob_end_flush().而這裏最重要的一個函數,就是ob_get_contents(),這個函數的作用是獲取緩衝區的內容,相當於上面的那個fetch(),道理一樣的。代碼:
<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php頁面輸出的全部內容
ob_end_flush();
$fp = fopen("./0001.html", "w");
fwrite($fp, $content);
fclose($fp);
echo "Hello World!";
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章