Smarty模板引擎

模板引擎的作用是什么

對PHP語言熟悉的程序員就會知道有個Smarty的名詞厕妖,那么這個具體是什么呢沪蓬?smarty是一個使用PHP編寫的PHP模板引擎揭芍,是目前業(yè)務(wù)最著名眨唬,功能最強(qiáng)大的一種PHP模板引擎,程序邏輯邏輯與外在內(nèi)容的分離拨黔,簡單的講就是讓PHP和HTML相分離蛔溃,讓程序員和美工同時進(jìn)行開發(fā),使的程序員改變程序的邏輯內(nèi)容時不會影響到美工的頁面設(shè)計,美工重新修改頁面時不會影響到程序的程序邏輯城榛。

官網(wǎng)地址

Smarty

文件目錄

粗略的看一下幾個主要文件目錄揪利,根目錄下有個demo文件夾,里面放的就是使用smarty的一些例子狠持,那么還有一個libs文件夾疟位,里面放置的是smarty類文件,其中Smarty.class.php就是模板引擎的主文件喘垂,那么用的時候就是引入這個主文件進(jìn)行實例化然后操作甜刻,plugins這個目錄放置的是smarty的插件,其它目錄有興趣的下去了解一下正勒。

Smarty的引入與實例化

將Smarty的demo文件和主要類文件提出來

<?php
require_once '/smarty/Smarty.class.php';
$smarty = new Smarty();

Smarty的配置

1得院、五配置

$smarty->left_delimiter = '{';//左定界符
$smarty->right_delimiter = '}';//右定界符
$smarty->template_dir = 'tpl';//html模板的地址
$smarty->compile_dir = 'template_c';//模板編譯生成的文件
$smarty->cache_dir = 'cache';//緩存
$smarty->caching = true;//開啟緩存
$smarty->cache_lifetime = 120;//緩存時間

在模板里面出現(xiàn){}那么里面的任何語句都交給smarty去處理,在根目錄下創(chuàng)建三個目錄章贞。

2祥绞、常用兩方法

//模板變量賦值
$smarty->assign('變量名','變量值');
//展示模板
$smarty->display('test.html');

Smarty基本語法

//模板變量賦值
$arr = array('title'=>'網(wǎng)站標(biāo)題','content'=>'網(wǎng)站內(nèi)容');
$smarty->assign('arr',$arr);
//模板變量取值
{$arr.content} OR {$arr['content']}

Smarty變量調(diào)節(jié)器(相當(dāng)于函數(shù))

手冊

1、單詞首字母大寫

$smarty->assign('str','hello word');
{$str|capitalize}

2鸭限、字符串連接

$smarty->assign('str','hello word');
{$str|cat:' gsy'}

3蜕径、日期格式化

$smarty->assign('date',time());
{$date|date_format}

4、為未賦值或為空的變量指定默認(rèn)值

$smarty->assign('data');
{$data|default:'apple'|capitalize}

5败京、轉(zhuǎn)碼 escape 用于html轉(zhuǎn)碼兜喻,在沒有轉(zhuǎn)碼的變量上轉(zhuǎn)換單引號,十六進(jìn)制轉(zhuǎn)碼赡麦,十六進(jìn)制美化朴皆,或者javascript轉(zhuǎn)碼,默認(rèn)是html轉(zhuǎn)碼

$smarty->assign('url','https://www.smarty.net/docs/zh_CN/language.modifier.escape.tpl');
{$url|escape:'url'}

為什么要對url轉(zhuǎn)碼泛粹?因為在程序里面有很多符號會影響到PHP等等腳本語言的正常運轉(zhuǎn)遂铡。
6、轉(zhuǎn)換大小寫

$smarty->assign('str','Happy New Year');
{$str|lower}
{$str|upper}

7晶姊、將所有換行符替換成HTML標(biāo)簽

$smarty->assign('str',"Happy New Year\nHappy New Year\nHappy New Year");
{$str|nl2br}

條件判斷句式

1忧便、常用的條件修飾符

eq(==)
neq(!=)
gt(>)
lt(<)

2、基本句式

{if $name eq 'gsy'}
Hello gsy
{elseif $name eq 'wyx'}
Hello wyx
{else}
Hello
{/if}

使用修飾符時必須和變量用空格隔開

Smarty的foreach循環(huán)

$arr = array(0=>array('name'=>'霍建華','age'=>'20'),1=>array('name'=>'林心如','age'=>'18'));
$smarty->assign('arr',$arr);
{foreach item=person from=$arr}
<p>姓名:{$person.name}</p>
<p>年齡:{$person.age}</p>
{/foreach}
//從smarty3開始支持與PHP foreach一樣的語法
{foreach $arr as $person}
<p>姓名:{$person.name}</p>
<p>年齡:{$person.age}</p>
{/foreach}

Smarty的文件引用

//sitename屬性僅僅只能在引入文件中使用
{include file='header.html' sitename='網(wǎng)站主體'}

使用PHP內(nèi)置函數(shù)

$smarty->assign('date',time());
{'Y-m-d'|date:$date}
$smarty->assign('str','Hello word');
{'word'|str_replace:'Beijin':$str}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帽借,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子超歌,更是在濱河造成了極大的恐慌砍艾,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巍举,死亡現(xiàn)場離奇詭異脆荷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蜓谋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梦皮,“玉大人,你說我怎么就攤上這事桃焕〗?希” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵观堂,是天一觀的道長让网。 經(jīng)常有香客問我,道長师痕,這世上最難降的妖魔是什么溃睹? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮胰坟,結(jié)果婚禮上因篇,老公的妹妹穿的比我還像新娘。我一直安慰自己笔横,他們只是感情好竞滓,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狠裹,像睡著了一般虽界。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涛菠,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天莉御,我揣著相機(jī)與錄音,去河邊找鬼俗冻。 笑死礁叔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迄薄。 我是一名探鬼主播琅关,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼讥蔽!你這毒婦竟也來了涣易?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冶伞,失蹤者是張志新(化名)和其女友劉穎新症,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體响禽,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡徒爹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年荚醒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隆嗅。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡界阁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胖喳,到底是詐尸還是另有隱情泡躯,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布禀晓,位于F島的核電站精续,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粹懒。R本人自食惡果不足惜重付,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凫乖。 院中可真熱鬧确垫,春花似錦、人聲如沸帽芽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽导街。三九已至披泪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搬瑰,已是汗流浹背款票。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留泽论,地道東北人艾少。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像翼悴,于是被迫代替她去往敵國和親缚够。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容