PHP 批量生成靜態html

2021-06-03 02:00:45 字數 2708 閱讀 3802

本示例圍繞 cms 系統的靜態頁面方案出發,展示批量生成靜態 html 功能。

注:本文程式只能在 windows 的 dos 或 linux 下執行 php 命令來執行。

本示例主要有4個檔案:config.inc.php(配置檔案)、db.class.php(資料庫 pdo 類)、model.class.php(pdo資料庫操作類)、index.php(執行檔案)

config.inc.php

<?php 

header('content-type:text/html;charset=utf-8');

date_default_timezone_set('prc');

define('root_path', dirname(__file__)); // 根目錄

define('db_dsn', 'mysql:host=localhost;dbname=article'); // mysql 的 pdo dsn

define('db_user', 'root'); // 資料庫使用者名稱

define('db_pwd', '1715544'); // 資料庫密碼(請您根據實際情況自行設定)

function __autoload($classname)

?>

db.class.php

<?php 

// 連線資料庫

class db catch (pdoexception $e)

return $pdo; }}

?>

model.class.php

<?php 

// 操作 sql

class model catch (pdoexception $e)

return $row; }

/*** 返回全部資料,返回 pdostatement 物件

* @param string $sql

* @return pdostatement

*/public function getall($sql) catch (pdoexception $e) }}

?>

index.php

<?php 

require_once './config.inc.php';

$m = new model();

$ids = $m->getall("select id from article order by id asc");

foreach ($ids as $rowidarr)

$idstr = rtrim($idstr, ','); // 所有文章的 id 號集合

$idarr = explode(',', $idstr); // 分割成陣列

// 下面的程式迴圈生成靜態頁面

foreach ($idarr as $articleid)

$articlepath = root_path. '/article'; // $articlepath 為靜態頁面放置的目錄

if (!is_dir($articlepath)) mkdir($articlepath, 0777); // 檢查目錄是否存在,不存在則建立

$filename = root_path . '/article/' . $articleid . '.html'; // $filename 生成的靜態檔名,格式:文章id.html(主鍵id不可能衝突)

$articletempath = root_path . '/templates/article.html'; // $articletempath 文章模板路徑

$articlecontent = file_get_contents($articletempath); // 獲取模板裡面的內容

// 對模板裡面設定的變數進行替換。即比如:把模板裡面的 <> 替換成資料庫裡讀取的 title,替換完畢賦值給變數 $articlecontent

$articlecontent = getarticle(array_keys($article), $articlecontent, $article);

$resource = fopen($filename, 'w');

file_put_contents($filename, $articlecontent); // 寫入 html 檔案

}/**

* getarticle($arr, $content, $article) 對模板進行替換操作

* @param array $arr 替換變數陣列

* @param string $content 模板內容

* @param array $article 每篇文章內容陣列,格式:array('title'=>xx, 'date'=>xx, 'author'=>xx, 'source'=>xx, 'content'=>xx);

*/function getarticle($arr, $content, $article) >', $article[$item], $content);

} return $content;

}?>

執行截圖(windows 的 dos 為例)

執行完畢截圖:

PHP 批量生成靜態html

本示例主要有4個檔案 config.inc.php 配置檔案 db.class.php 資料庫 pdo 類 model.class.php pdo資料庫操作類 index.php 執行檔案 header content type text html charset utf 8 date defaul...

PHP生成靜態html

一 建立muban.html檔案,新增如下 內容 二 建立php檔案,新增如下 header content type text html charset utf 8 將資料存入二維陣列 con array array 文章標題1 文章內容1 array 文章標題2 文章內容2 array 文章標題...

php生成靜態html頁面

ob start 是開啟緩衝區的,就是要把您需要生成的靜態檔案的內容快取在這裡 ob get contents 是讀出緩衝區裡的內容,下面有 為例 ob end clean 這個比較重要,只有使用了這個函式後,緩衝區裡的內容才會讀 ob start require index.php 模板頁面 te...