PHP 腳本經服務端解析器處理,可能連接資料庫,最終輸出 HTML 發送給瀏覽器。優點:內容即時更新;缺點:每次請求需解析執行,資源消耗大,響應較慢。
服務器上真實存在的純 HTML/CSS/JS 文件。優點:無需解析、無資料庫查詢,極大降低服務器負載,響應速度極快;缺點:內容更新需重新生成文件。
將頁面結構(模板)與數據邏輯分離。模板包含佔位符(如 {title}),PHP 腳本讀取模板、替換變量、輸出或保存為靜態文件。
<HTML>
<TITLE>{ title }</TITLE>
<BODY>
this is a { file } file's template
</BODY>
</HTML>
<?php
$title = "拓邁國際測試模板";
$file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max";
$fp = fopen("temp.html", "r");
$content = fread($fp, filesize("temp.html"));
fclose($fp);
$content = str_replace("{ file }", $file, $content);
$content = str_replace("{ title }", $title, $content);
echo $content;
?>
關鍵函數 fopen() 以 w 模式開啟文件,不存在則創建。需確保目標目錄可寫(Linux 下權限 0777)。
<?php
$title = "拓邁國際測試模板";
$file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max";
$fp = fopen("temp.html", "r");
$content = fread($fp, filesize("temp.html"));
fclose($fp);
$content = str_replace("{ file }", $file, $content);
$content = str_replace("{ title }", $title, $content);
// 寫入靜態文件
$filename = "test/test.html";
$handle = fopen($filename, "w");
if (!is_writable($filename)) {
die("文件:$filename 不可寫,請檢查屬性後重試!");
}
if (!fwrite($handle, $content)) {
die("生成文件 $filename 失敗!");
}
fclose($handle);
die("創建文件 $filename 成功!");
?>
PHP 生成靜態頁面本質是「文件寫入操作」,核心在於模板解析與文件系統權限控制。對高併發、內容相對固定的場景(文章詳情、產品頁、分類列表)效果顯著,可大幅提升吞吐量並降低服務器成本。