溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

PHP Smarty 模板 讀取配置文件變量

發(fā)布時(shí)間:2020-07-14 08:36:53 來(lái)源:網(wǎng)絡(luò) 閱讀:328 作者:津沙港灣 欄目:web開(kāi)發(fā)

配置文件 預(yù)備知識(shí)

可以讓設(shè)計(jì)者將全局的模板變量以文件形式管理起來(lái)。

其中一個(gè)例子是管理模板的顏色值:

通常如果你需要從程序中更改顏色主題,那么你需要找到每個(gè)模板文件, 并且修改它們的顏色值。

通過(guò)配置文件,顏色值被統(tǒng)一放置到配置文件內(nèi),你只需要修改這個(gè)文件即可。

# global variables
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00

[Customer]
pageTitle = "Customer Info"

[Login]
pageTitle = "Login"
focus = "username"
Intro = """This is a value that spans more
           than one line. you must enclose
           it in triple quotes."""

# hidden section
[.Database]
host=my.example.com
db=ADDRESSBOOK
user=php-user
pass=foobar

配置文件

配置變量的值

1.可以被引用起來(lái),但不是必須的。

2.可以使用單引號(hào)或者雙引號(hào)。

3.如果有的值會(huì)跨度不止一行的,那么需要用三引號(hào)(""")把它們括起來(lái)。

注釋  # (井號(hào))

你可以將任何形式的注釋放到配置文件中,但這不是有效的配置文件語(yǔ)法。

使用# (井號(hào)) 來(lái)作為注釋行的開(kāi)頭。

段落  [ ]

段落的名字用[方括號(hào)]括起來(lái)。

段落名稱(chēng)可以是任意字符,但不包括[]符號(hào)。


最頂部的四個(gè)值是全局變量,也就是不在段落內(nèi)的變量。 這些全局變量將總是被載入。


當(dāng)一個(gè)特定的段落被載入,那么段落的變量以及全局變量都會(huì)被載入。

如全局變量和段落變量都有同樣的變量,那么將使用段落的變量。

如有相同的兩個(gè)變量在同一個(gè)段落,最后一個(gè)將會(huì)被使用,除非 $config_overwrite設(shè)置被關(guān)閉。


段落載入  config_load    section

<{config_load file="../config/my.conf " section = "Customer"}>


配置文件載入

  1. 內(nèi)置的函數(shù) {config_load}來(lái)載入,

  2. 通過(guò)configLoad()函數(shù)進(jìn)行載入。


配置段落隱藏 [.hidden]

你可以通過(guò)在變量名或段落名前面加上點(diǎn)號(hào)(.),來(lái)隱藏變量或者整個(gè)段落,如[.hidden]。

這個(gè)技巧在你的程序使用配置文件保存一些敏感信息,但這些信息又不希望模板引擎使用時(shí),非常有用。 如果是第三方來(lái)對(duì)模板進(jìn)行修改,你也可以保證他們不會(huì)在載入配置文件時(shí),讀取到這些敏感信息


配置文件從數(shù)據(jù)庫(kù)中載入

$smarty->configLoad("db:my.conf")。


============================================================

配置文件獲取的變量

1.可以通過(guò) 井號(hào)引用起來(lái)訪問(wèn)如#hash_marks#

<{#title#}>

2.通過(guò)Smarty變量 $smarty.config來(lái)訪問(wèn)

<{$smarty.config.title}>


完整舉例

配置文件 my.conf

title='my first web'
bgcolor='white'

[index]
name='Mr.Yang'

[list]
age=10

模板文件 hello.tpl

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<{config_load file="../config/my.conf " section="index"}>
<body bgcolor='<{ #bgcolor# }>'>
<h4><{#title#}></h4>
<h4><{$smarty.config.name}></h4>
</body>

瀏覽器輸出

my first web
Mr.Yang


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI