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

Smarty 從設定檔載入變數:config_load 標籤與區段機制詳解

     編輯:PHP 綜合知識

說明 Smarty 如何透過 {config_load} 從外部設定檔(.conf/.ini)載入變數,支援區段機制依環境切換設定,並在模板中以 {#var#} 語法輸出。適合將資料庫連線參數、網站基本資訊等不常變動的設定外部化。

設定檔格式:db.conf

[Database]
host = "localhost"
username = "root"
password = "123456"
db_name = "myapp"

[Cache]
driver = "redis"
host = "127.0.0.1"
port = 6379
  • 格式:key = "value",每行一組,無需分號結尾。
  • [SectionName] 定義區段,同一鍵名可在不同區段有不同值。
  • 值可用單引號、雙引號或無引號(純數字/布林)。

模板載入與使用

{* temp.tpl *}
{* 載入預設區段(無區段名稱的鍵) *}
{config_load file="db.conf"}

<html>
<h2>從設定檔載入變數</h2>
<p>Host: {#host#}</p>
<p>User: {#username#}</p>
</html>

指定區段載入

{* 載入 Database 區段 *}
{config_load file="db.conf" section="Database"}
{#host#} {#username#} {#password#} {#db_name#}

{* 載入 Cache 區段 *}
{config_load file="db.conf" section="Cache"}
{#driver#} {#host#} {#port#}

路徑解析規則

  • 相對路徑以執行腳本(如 index.php)所在目錄為基準。
  • 建議使用絕對路徑或設定 $smarty->config_dir 統一管理。

PHP 端設定

<?php
require_once("./libs/Smarty.class.php");
$smarty = new Smarty();
$smarty->config_dir = __DIR__ . "/configs"; // 設定設定檔目錄
$smarty->display("temp.tpl");
?>

進階:預載入全域設定

<?php
// 在 PHP 端預載入,所有模板自動可用
$smarty->config_load("db.conf", "Database");
$smarty->display("temp.tpl");
?>

變數輸出語法比較

來源模板語法範例
PHP assign{$var}{$title}
設定檔{#var#}{#site_name#}

適用場景

  • 資料庫連線參數、API 金鑰、第三方服務設定
  • 網站標題、分頁大小、上傳限制等業務參數
  • 多環境部署:section="production" / section="development"
  • 非程式人員維護設定(編輯 .conf 檔即可,無需改 PHP)

善用 {config_load} 將設定外部化,提升專案可維護性與部署彈性。

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