Smarty模本引擎

封裝一個自定義Smarty引擎

 

Smart模板註釋  基本語法:{* 註釋內容 *}php

Smarty模板中的變量css

簡單變量html

四種標量類型:整型浮點型布爾型字符串型數組

數組變量瀏覽器

能夠給模板分配一個數組變量使用(一維和多維均可以)cookie

對象變量session

咱們一樣的能夠將一個對象變量分配給模板文件,而後經過{$對象名->屬性名}來訪問這個對象的屬性值!函數

變量調節器

基本語法佈局

不一樣的調節器有不一樣的名字,能夠完成不一樣的功能,而且不一樣的調節器都有本身不一樣的參數!post

{$變量名|調節器名:參數1:參數2:參數3……}

cat

做用:主要是對兩個字符串進行鏈接操做!

{$變量名1|cat$變量名2|cat$變量名3}

 

date_format

做用:對時間戳進行格式化!參數有不少,可是主要的參數仍是表明年月日時分秒的參數!

{$變量名(時間戳)|date_format:‘%Y-%m-%d %H%M%S}

 

default

做用:當一個變量爲空或者沒有定義的時候,默認的就以default後面的值進行填充!

 {$變量名|default:值}

 

lower upper

做用:將字符串裏面的英文字母所有轉換成小寫或大寫!

{$變量名|lower}

{$變量名|upper}

 

escape

做用:加上這個調節器後,瀏覽器就不會解析相關的html等標籤!

 {$變量名|escape}

 

strip_tags

做用:去掉jshtml等相關的標籤!

{$變量名|strip_tags}

 

nl2br

做用:將字符串中的\n轉換爲<br />標籤,從而在顯示的時候真正的實現換行的效果

{$變量名| nl2br}

 

replace

做用:將變量中的字符串1所有替換成字符串2

{$變量名| replace:字符串1:字符串2}

 

tring_format

做用:講字符串進行格式化!好比:%d表明整型,%s表明字符串!

{$變量名| string_format:%d}

 

truncate

做用:只截取前多少多少的字符,後面用…代替!

{$變量名|truncate:字符串長度:’…’}

注意:

1, 這的…是默認結束符,能夠省略!

2, 這裏的…佔用字符串指定的長度!

3, 這裏的結束符也可使用用戶指定的字符串

4, 若是實在不想顯示任何的結束符,可使用null代替

5, 也能夠省略字符長度,默認爲80個!

6, 截取中文的時候容易出現亂碼:

Smarty系統變量

也叫做Smarty保留變量,就是Smarty系統本身已經定義好了,不須要用戶手動分配給模板,能夠直接在模板文件中使用的變量!

經常使用的有如下的幾個:

{$smarty.get.變量名稱}      至關於PHP中的$_GET

 

{$smarty.post.變量名稱}    至關於PHP中的$_POST

 

{$smarty.cookies.變量名稱}   至關於php中的$_COOKIE

 

{$smarty.session.變量名稱}   至關於php中的$_SESSION

 

{$smarty.now}        至關於php中的time函數,返回一個當前時間的時間戳!

 

Smarty的內置語句

 

foreach

基本語法

{foreach from=數組名 item=元素的值的名 key=元素的鍵名 name=名稱}

  {foreachelse}

{/foreach}

主要功能:用於數組元素的遍歷!

from要遍歷哪一個數組元素(必選項)

item系統每次將遍歷的結果放入到變量item中(必選項) 

key鍵名

name給本次foreach遍歷起一個名字

 

foreach中的內置變量

$smarty.foreach.name.index:  表明循環的索引值,默認是從0開始,其中的name就是在foreach選項中給foreach循環起的一個名字!也就是說,若是想使用foreach內置變量,就必須先給foreach循環起一個名字!

 

$smarty.foreach.name.iteration循環迭代,表明當前是第幾回循環,默認從1開始!

 

$smarty.foreach.name.total:  表明本次一共循環了多少次!

 

include

基本語法:  {include file=文件名 變量名=變量值}

主要功能:實現文件加載,經常使用於網頁佈局

ifelseifelse 

 

literal標籤

基本語法

{literal} 

……

{/literal}

主要的功能就是把被包裹的標記當作普通文件直接輸出,也就是不會被smarty解析,主要用於包裹jscss標籤!

相關文章
相關標籤/搜索