動態頁面靜態化能降低服務器負載、利於 SEO。本文講解 PHP + MySQL + 模板替換生成靜態 HTML 的核心原理、目錄規劃、代碼實現與避坑點。
{title}、{content} 等佔位符)。str_replace 將佔位符替換為實際數據。.html 文件 (如 1.html)。CREATE DATABASE news_db;
USE news_db;
CREATE TABLE news (
id INT AUTO_INCREMENT PRIMARY KEY,
title TEXT,
content TEXT,
path TEXT COMMENT '生成的靜態文件路徑'
);
<html>
<body>
<h1>{title}</h1>
<div>{content}</div>
</body>
</html>
flock() 或資料庫 AUTO_INCREMENT ID 避免競態。2024/01/15/123.html),避免單目錄文件過多降低文件系統性能。proxy_cache + purge 機制。| 優勢 | 局限 |
|---|---|
| 極高併發讀性能、無 PHP/DB 壓力 | 實時性差 (需重新生成) |
| SEO 友好、利於搜尋引擎抓取 | 動態交互 (評論、個性化) 難支援 |
| 服務器資源消耗極低 | 大量頁面佔用磁盤、部署複雜度高 |
建議:文章、商品詳情、列表頁等「讀多寫少、實時性要求低」頁面適合靜態化;用戶中心、購物車、實時數據儀表板保持動態。