首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 生成靜態 HTML 頁面原理與實現

     編輯:PHP 綜合知識

核心流程

  1. 讀取模板文件(包含佔位符如 {Title}、{Content})。
  2. 從數據庫查詢文章數據。
  3. str_replace 替換佔位符為實際內容。
  4. 以日期時間命名生成 .html 文件寫入磁盤。

完整代碼

<?php
include(dirname(dirname(__FILE__))."\include\config.php");

function GenerateHTML($Date, $Time, $Content, $Title, $Name) {
    $GetDateRow = explode("-", $Date);
    $GetTimeRow = explode(":", $Time);
    $FileName = $GetDateRow[0].$GetDateRow[1].$GetDateRow[2].$GetTimeRow[0].$GetTimeRow[1].$GetTimeRow[2].".html";

    $FP = fopen("tmp.html", "r");
    $Str = fread($FP, filesize("tmp.html"));
    fclose($FP);

    $Str = str_replace("{Title}", $Title, $Str);
    $Str = str_replace("{Content}", $Content, $Str);
    $Str = str_replace("{Name}", $Name, $Str);
    $Str = str_replace("{Date}", $Date, $Str);
    $Str = str_replace("{Time}", $Time, $Str);

    $Handle = fopen($FileName, "w");
    fwrite($Handle, $Str);
    fclose($Handle);
}

$querysql = "select * from article";
$queryset = mysql_query($querysql);
while ($row = mysql_fetch_array($queryset)) {
    GenerateHTML($row['date'], $row['time'], $row['content'], $row['title'], $row['name']);
}
?>

模板文件示例

<html>
<head><title>{Title}</title></head>
<body>
<h1>{Title}</h1>
<div>{Content}</div>
<p>作者:{Name} 日期:{Date} {Time}</p>
</body>
</html>

優化建議

  • 使用 ob_start() 捕獲輸出,避免大文件佔用內存。
  • 引入模板引擎(Smarty/Blade)支援邏輯標籤。
  • 生成後可配合 CDN 靜態化加速。
  • 注意文件名衝突,可加入文章 ID 或隨機串。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved