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

Smarty 模板引擎 6 大實用技巧

     編輯:PHP 綜合知識

1. {capture} 捕獲輸出

{capture name="sidebar"}
    <div class="widget">...複雜內容...</div>
{/capture}

<div class="layout">
    {$smarty.capture.sidebar}
</div>

用途:重複使用區塊、條件式輸出、傳遞給變數再處理。

2. {config_load} 載入設定檔

configs/test.conf:

pageTitle = "設定檔測試"
bodyBgColor = "#f0f0f0"
img = "logo.png"

index.tpl:

{config_load file="test.conf"}
<html><head><title>{#pageTitle#}</title></head>
<body bgcolor="{#bodyBgColor#}">
<img src="{#img#}">

注意:設定檔預設放在 configs/ 目錄,變數以 {#var#} 輸出。

3. {php} 內嵌 PHP 程式碼 (不推薦常用)

{php}
    global $db;
    $res = $db->query("SELECT * FROM news LIMIT 5");
    while ($row = $res->fetch()) {
        echo "<li>{$row['title']}</li>";
    }
{/php}

⚠️ 破壞模板與邏輯分離,僅限緊急臨時方案。

4. {strip} 移除多餘空白壓縮 HTML

{strip}
<div>
    <ul>
        <li>項目 1</li>
        <li>項目 2</li>
    </ul>
</div>
{/strip}
{* 輸出:
  • 項目 1
  • 項目 2
*}

減少傳輸量,加快瀏覽器渲染。

5. {fetch} 讀取外部檔案內容

{fetch file="./data/announcement.txt" assign="ann"}
{if $ann}
    <div class="announcement">{$ann}</div>
{/if}

類似 file_get_contents,可指定 assign 存入變數。

6. 直接使用 PHP 常數

{* PHP: define('SITE_NAME', '我的網站'); *}
<h1>{$smarty.const.SITE_NAME}</h1>

無需在 PHP 端 assign,模板直接存取所有已定義常數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved