Smarty中常用變數操作符匯總,smarty操作符匯總
本文匯總了Smarty中常用變數操作符,分享給大家供大家參考。具體如下:
php模板引擎smarty的變數操作符可用於操作變數,自訂函數和字元。
文法中使用"|"應用變數操作符,多個參數用":"??指簟?/DIV>
capitalize[首字母大寫]
count_characters[計算字元數]
cat[連接字串]
count_paragraphs[計算段落數]
count_sentences[計算句數]
count_words[計算詞數]
date_format[時間格式]
default[預設]
escape[轉碼]
indent[縮排]
lower[小寫 ]
nl2br[分行符號替換成
]
regex_replace[正則替換]
replace[替換]
spacify[插空]
string_format[字串格式化]
strip[去除(多餘空格)]
strip_tags[去除html標籤]
truncate[截取]
upper[大寫]
wordwrap[行寬約束]
組合使用多個操作符
執行個體如下:
複製代碼 代碼如下:{* 標題大寫 *}
{$title|upper}
{* 取其前40個字元 *}
Topic: {$topic|truncate:40:"..."}
{* 格式化文字串 *}
{"now"|date_format:"%Y/%m/%d"}
{* 在自訂函數裡應用調節器 *}
{mailto|upper address="main@cn-web.com"}
capitalize(首字母大寫)
index.php頁面如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Police begin campaign to rundown jaywalkers.');
$smarty->display('index.tpl');
index.tpl頁面如下:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|capitalize}
OUTPUT輸出如下:
複製代碼 代碼如下:Police begin campaign to rundown jaywalkers.
Police Begin Campaign To Rundown Jaywalkers.
count_characters(計算變數裡的字元數)
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
$smarty->display('index.tpl');
index.tpl頁面如下:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|count_characters}
OUTPUT輸出如下:
Cold Wave Linked to Temperatures.
cat(連接字串)
將cat裡的值串連到給定的變數後面
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Psychics predict world didn't end');
$smarty->display('index.tpl');
index.tpl頁面如下:
複製代碼 代碼如下:{$articleTitle|cat:" yesterday."}
OUTPUT輸出如下:
複製代碼 代碼如下:Psychics predict world didn't end yesterday.
count_paragraphs(計算段數)
計算變數裡的段落數量
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.');
$smarty->display('index.tpl');
index.tpl模板頁面如下:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|count_paragraphs}
OUTPUT輸出如下:
複製代碼 代碼如下:War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.
2
count_sentences(計算句數)
計算變數裡句子的數量
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.');
$smarty->display('index.tpl');
index.tpl模板如下:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|count_sentences}
OUTPUT輸出如下:
複製代碼 代碼如下:Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.
2
count_words(計算詞數)
計算變數裡的詞數
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->display('index.tpl');
index.tpl模板如下:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|count_words}
OUTPUT輸出如下:
複製代碼 代碼如下:Dealers Will Hear Car Talk at Noon.
7
date_format(日期格式)
Parameter Position
參數位置 Type Required Default Description
1 string No %b %e, %Y This is the format for the outputted date.
輸出字串的格式
2 string No n/a This is the default date if the input is empty.
輸入為空白時的預設設定
在給定的函數serftime();裡格式日期和時間.
Unix或者mysql等的時間戳記(parsable by strtotime)都可以傳遞到smarty.
設計者可以使用date_format完全控制日期格式.
如果傳給date_format的資料是空的,將使用第二個參數作為時間格式
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('yesterday', strtotime('-1 day'));
$smarty->display('index.tpl');
index.tpl:
複製代碼 代碼如下:{$smarty.now|date_format}
{$smarty.now|date_format:"%A, %B %e, %Y"}
{$smarty.now|date_format:"%H:%M:%S"}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:"%H:%M:%S"}
OUTPUT輸出如下:
複製代碼 代碼如下:Feb 6, 2001
Tuesday, February 6, 2001
14:33:00
Feb 5, 2001
Monday, February 5, 2001
14:33:00
default(預設)
Parameter Position Type Required Default Description
1 string No empty This is the default value to output if the variable is empty.
這是變數為空白的時候的預設輸出
為空白變數設定一個預設值.
當變數為空白或者未分配的時候,將由給定的預設值替代輸出.
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle|default:"no title"}
{$myTitle|default:"no title"}
OUTPUT輸出:
複製代碼 代碼如下:Dealers Will Hear Car Talk at Noon.
no title
escape(轉碼)
Parameter Position Type Required Possible Values Default Description
1 string No html,htmlall,url,quotes,hex,hexentity,javascript html This is the escape format to use.
用於html轉碼,url轉碼,在沒有轉碼的變數上轉換單引號,十六進位轉碼,十六進位美化,或者javascript轉碼.
預設是html轉碼
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|escape}
{$articleTitle|escape:"html"} {* escapes & " ' < > *}
{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *}
{$articleTitle|escape:"url"}
{$articleTitle|escape:"quotes"}
href="{$EmailAddress|escape:"hexentity"}mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}
OUTPUT輸出:
複製代碼 代碼如下:'Stiff Opposition Expected to Casketless Funeral Plan'
'Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan'
'Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan'
'Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan'
'Stiff+Opposition+Expected+to+Casketless+Funeral+Plan'
'Stiff Opposition Expected to Casketless Funeral Plan'
href="bob@me.netmailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net
indent(縮排)
Parameter Position Type Required Default Description
1 integer No 4 This determines how many characters to indent to.
2 string No (one space) This is the character used to indent with.
在每行縮排字串,預設是4個字元(pear標準也是).
作為選擇性參數,你可以指定縮排字元數.
作為第二個選擇性參數,你可以指定縮排用什麼字元代替
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'NJ judge to rule on nude beach.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|indent}
{$articleTitle|indent:10}
{$articleTitle|indent:1:"t"}
OUTPUT輸出:
複製代碼 代碼如下:NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
NJ judge to rule on nude beach.
Sun or rain expected today, dark tonight.
Statistics show that teen pregnancy drops off significantly after 25.
lower(小寫)
將變數字串小寫
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|lower}
OUTPUT輸出:
複製代碼 代碼如下:Two Convicts Evade Noose, Jury Hung.
two convicts evade noose, jury hung.
nl2br(分行符號替換成
)
所有的分行符號將被替換成
.同php的nl2br()函數一樣.
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Sun or rain expectedntoday, dark tonight");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle|nl2br}
OUTPUT輸出:
複製代碼 代碼如下:Sun or rain expected
today, dark tonight
regex_replace(正則替換)
尋找和替換Regex .
Parameter Position Type Required Default Description
1 string Yes n/a This is the regular expression to be replaced.
替換Regex.
2 string Yes n/a This is the string of text to replace with.
使用什麼文本字串來替換
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Infertility unlikely tonbe passed on, experts say.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{* replace each carriage return, tab & new line with a space *}{* 使用空格替換每個斷行符號,tab,和分行符號 *}
{$articleTitle}
{$articleTitle|regex_replace:"/[rtn]/":" "}
OUTPUT輸出:
複製代碼 代碼如下:Infertility unlikely to
be passed on, experts say.
Infertility unlikely to be passed on, experts say.
replace(替換)
簡單的搜尋和替換字串
Parameter Position Type Required Default Description
1 string Yes n/a This is the string of text to be replaced.
將被替換的字串
2 string Yes n/a This is the string of text to replace with.
用來替換的文本
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Child's Stool Great for Use in Garden.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|replace:"Garden":"Vineyard"}
{$articleTitle|replace:" ":" "}
OUTPUT輸出:
複製代碼 代碼如下:Child's Stool Great for Use in Garden.
Child's Stool Great for Use in Vineyard.
Child's Stool Great for Use in Garden.
spacify
是一種在字串的每個字元之間插入空格或者插入其他的字元(串).
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|spacify}
{$articleTitle|spacify:"^^"}
OUTPUT輸出:
複製代碼 代碼如下:Something Went Wrong in Jet Crash, Experts Say.
S o m e t h i n g W e n t W r o n g i n J e t C r a s h , E x p e r t s S a y .
S^^o^^m^^e^^t^^h^^i^^n^^g^^ ^^W^^e^^n^^t^^ ^^W^^r^^o^^n^^g^^ ^^i^^n^^ ^^J^^e^^t^^ ^^C^^r^^a^^s^^h^^,^^ ^^E^^x^^p^^e^^r^^t^^s^^ ^^S^^a^^y^^.
string_format(字串格式化)
Parameter Position Type Required Default Description
1 string Yes n/a This is what format to use. (sprintf)
使用的格式化方式
是一種格式化浮點數的方法.例如十進位數.使用sprintf文法格式化
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('number', 23.5787446);
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$number}
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}
OUTPUT輸出:
複製代碼 代碼如下:23.5787446
23.58
24
strip(去除(多餘空格)
替換所有重複的空格,換行和tab為單個.
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Grandmother ofneight makest hole in one.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|strip}
{$articleTitle|strip:" "}
OUTPUT輸出:
複製代碼 代碼如下:Grandmother of
eight makes hole in one.
Grandmother of eight makes hole in one.
Grandmother of eight makes hole in one.
strip_tags(去除html標籤)
去除在<和>之間的所有標籤,包括<和>.
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|strip_tags}
OUTPUT輸出:
複製代碼 代碼如下:Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
truncate(截取)
Parameter Position Type Required Default Description
1 integer No 80 This determines how many characters to truncate to.
指定截取多少字元
2 string No ... This is the text to append if truncation occurs.
截取後加在截取詞後的字串
3 boolean No false This determines whether or not to truncate at a word boundary (false), or at the exact character (true).
檢查是否截取到詞的邊界
截取字串開始的一段.預設是80個.
你可以指定第二個參數作為在截取的那段字串後加上什麼字元.
預設情況下,smarty會截取到一個詞的末尾,
如果你想要精確的截取多少個字元,把第三個參數改為"true"
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|truncate}
{$articleTitle|truncate:30}
{$articleTitle|truncate:30:""}
{$articleTitle|truncate:30:"---"}
{$articleTitle|truncate:30:"":true}
{$articleTitle|truncate:30:"...":true}
OUTPUT輸出:
複製代碼 代碼如下:Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
upper(大寫 )
將變數改為大寫
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|upper}
OUTPUT輸出:
複製代碼 代碼如下:If Strike isn't Settled Quickly it may Last a While.
IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
wordwrap(行寬約束)
可以指定段落的寬度(也就是多少個字元一行,超過這個字元數換行).預設80.
第二個參數可選,可以指定在約束點使用什麼字元(預設是分行符號n).
預設情況下smarty將截取到詞尾,你也可以指定精確截取多少個字元
Parameter Position Type Required Default Description
1 integer No 80 This determines how many columns to wrap to.
指 定段落(句子)的寬度
2 string No n This is the string used to wrap words with.
使用什麼字元約束
3 boolean No false This determines whether or not to wrap at a word boundary (false), or at the exact character (true).
是否精確約束到字元
index.php如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years.");
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|wordwrap:30}
{$articleTitle|wordwrap:20}
{$articleTitle|wordwrap:30:"
n"}
{$articleTitle|wordwrap:30:"n":true}
OUTPUT輸出:
複製代碼 代碼如下:Blind woman gets new kidney from dad she hasn't seen in years.
Blind woman gets new kidney
from dad she hasn't seen in
years.
Blind woman gets new
kidney from dad she
hasn't seen in
years.
Blind woman gets new kidney
from dad she hasn't seen in years.
Blind woman gets new kidney fr
om dad she hasn't seen in year
s.
組合使用多個操作符
可以在一個變數上應用操作符,它們將從左至右依次組合應用.多個操作符必須用"|"符號分開.
index.php頁面如下:
複製代碼 代碼如下:$smarty = new Smarty;
$smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');
$smarty->display('index.tpl');
index.tpl模板:
複製代碼 代碼如下:{$articleTitle}
{$articleTitle|upper|spacify}
{$articleTitle|lower|spacify|truncate}
{$articleTitle|lower|truncate:30|spacify}
{$articleTitle|lower|spacify|truncate:30:". . ."}
OUTPUT輸出:
複製代碼 代碼如下:Smokers are Productive, but Death Cuts Efficiency.
S M O K E R S A R E P R O D U C T I V E , B U T D E A T H C U T S E F F I C I E N C Y .
s m o k e r s a r e p r o d u c t i v e , b u t d e a t h c u t s...
s m o k e r s a r e p r o d u c t i v e , b u t . . .
s m o k e r s a r e p. . .
希望本文所述對大家的PHP程式設計有所協助。
smarty的模板中,怎使用php變數?
就是這個方法。
smarty模板中變數自增問題
試了一下這樣可以:
<{assign var="i" value="1"}> (放在迴圈之外)
<{assign var="i" value=$i+1}> (迴圈之內遞增)
http://www.bkjia.com/PHPjc/901284.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/901284.htmlTechArticleSmarty中常用變數操作符匯總,smarty操作符匯總 本文匯總了Smarty中常用變數操作符,分享給大家供大家參考。具體如下: php模板引擎smarty的...