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

PHPLib 模板體系介紹:語法規則、區塊巢狀與 boeiBlog 整合實例

     編輯:PHP 綜合知識

專案背景

boeiBlog 採用 PHPLib 7.4 模板引擎(class/template.class.php),優勢在於模板頁面簡單、邏輯與呈現分離,適合個人部落格系統。

常用方法速查

方法用途
set_file()載入模板檔案,建立 handle
set_block()宣告區塊,支援巢狀
set_var()設定變數值
parse()解析模板,結果存入 target handle
pparse()解析並直接輸出
p() / get()輸出/取回已解析變數

模板語法規則

  • 變數標記:{var_name}(大括號包裹)。
  • 區塊標記:HTML 註解格式
    <!-- BEGIN block_name -->
    ... 區塊內容 ...
    <!-- END block_name -->
    
  • 區塊可巢狀:
    <table>
    <!-- BEGIN rowlist -->
    <tr>
    <!-- BEGIN collist -->
    <td>{cell_value}</td>
    <!-- END collist -->
    </tr>
    <!-- END rowlist -->
    </table>
    

PHP 整合範例

<?php
$t = new Template("templates/");
$t->set_file("show_main", "main.htm");
$t->set_file(array(
    "show_header" => "header.htm",
    "show_footer" => "footer.htm"
));

// 宣告區塊
$t->set_block("show_main", "rowlist", "RL");
$t->set_block("RL", "collist", "CL");

// 迴圈資料
foreach ($articles as $art) {
    $t->set_var("title", $art['title']);
    $t->set_var("date", $art['date']);
    $t->parse("RL", "rowlist", true); // 累加行

    foreach ($art['tags'] as $tag) {
        $t->set_var("tag_name", $tag);
        $t->parse("CL", "collist", true);
    }
}

$t->pparse("show_header");
$t->pparse("show_main");
$t->pparse("show_footer");
?>

注意事項

  • 模板中若出現非預期大括號(如 JS 物件字面量),會被誤判為變數而清除。撰寫文章時可暫用 [[ ]] 代替,發布前替換。
  • 效能:解析型模板每次請求皆重新編譯,高流量建議加入快取或改用編譯型引擎(Smarty)。
  • PHPLib 7.4 已修正早期版本多數 Bug,穩定可用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved