Smarty中常用變量操作符匯總
本文匯總了Smarty中常用變量操作符,分享給大家供大家參考。具體如下:
php模板引擎smarty的變量操作符可用于操作變量,自定義函數(shù)和字符。
語法中使用"|"應(yīng)用變量操作符,多個參數(shù)用":"??指簟?/DIV>
capitalize[首字母大寫]
count_characters[計算字符數(shù)]
cat[連接字符串]
count_paragraphs[計算段落數(shù)]
count_sentences[計算句數(shù)]
count_words[計算詞數(shù)]
date_format[時間格式]
default[默認(rèn)]
escape[轉(zhuǎn)碼]
indent[縮進]
lower[小寫 ]
nl2br[換行符替換成<br />]
regex_replace[正則替換]
replace[替換]
spacify[插空]
string_format[字符串格式化]
strip[去除(多余空格)]
strip_tags[去除html標(biāo)簽]
truncate[截取]
upper[大寫]
wordwrap[行寬約束]
組合使用多個操作符
實例如下:
<h2>{$title|upper}</h2>
{* 取其前40個字符 *}
Topic: {$topic|truncate:40:"..."}
{* 格式化文字串 *}
{"now"|date_format:"%Y/%m/%d"}
{* 在自定義函數(shù)里應(yīng)用調(diào)節(jié)器 *}
{mailto|upper address="main@cn-web.com"}
capitalize(首字母大寫)
index.php頁面如下:
$smarty->assign('articleTitle', 'Police begin campaign to rundown jaywalkers.');
$smarty->display('index.tpl');
index.tpl頁面如下:
{$articleTitle|capitalize}
OUTPUT輸出如下:
Police Begin Campaign To Rundown Jaywalkers.
count_characters(計算變量里的字符數(shù))
index.php如下:
$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');
$smarty->display('index.tpl');
index.tpl頁面如下:
{$articleTitle|count_characters}
OUTPUT輸出如下:
Cold Wave Linked to Temperatures.
cat(連接字符串)
將cat里的值連接到給定的變量后面
index.php如下:
$smarty->assign('articleTitle', 'Psychics predict world didn't end');
$smarty->display('index.tpl');
index.tpl頁面如下:
OUTPUT輸出如下:
count_paragraphs(計算段數(shù))
計算變量里的段落數(shù)量
index.php如下:
$smarty->assign('articleTitle', 'War Dims Hope for Peace. Child's Death Ruins Couple's Holiday.');
$smarty->display('index.tpl');
index.tpl模板頁面如下:
{$articleTitle|count_paragraphs}
OUTPUT輸出如下:
Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.
2
count_sentences(計算句數(shù))
計算變量里句子的數(shù)量
index.php如下:
$smarty->assign('articleTitle', 'Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.');
$smarty->display('index.tpl');
index.tpl模板如下:
{$articleTitle|count_sentences}
OUTPUT輸出如下:
2
count_words(計算詞數(shù))
計算變量里的詞數(shù)
index.php如下:
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->display('index.tpl');
index.tpl模板如下:
{$articleTitle|count_words}
OUTPUT輸出如下:
7
date_format(日期格式)
Parameter Position
參數(shù)位置 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.
輸入為空時的默認(rèn)設(shè)置
在給定的函數(shù)serftime();里格式日期和時間.
Unix或者mysql等的時間戳(parsable by strtotime)都可以傳遞到smarty.
設(shè)計者可以使用date_format完全控制日期格式.
如果傳給date_format的數(shù)據(jù)是空的,將使用第二個參數(shù)作為時間格式
index.php如下:
$smarty->assign('yesterday', strtotime('-1 day'));
$smarty->display('index.tpl');
index.tpl:
{$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輸出如下:
Tuesday, February 6, 2001
14:33:00
Feb 5, 2001
Monday, February 5, 2001
14:33:00
default(默認(rèn))
Parameter Position Type Required Default Description
1 string No empty This is the default value to output if the variable is empty.
這是變量為空的時候的默認(rèn)輸出
為空變量設(shè)置一個默認(rèn)值.
當(dāng)變量為空或者未分配的時候,將由給定的默認(rèn)值替代輸出.
index.php如下:
$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');
$smarty->display('index.tpl');
index.tpl模板:
{$myTitle|default:"no title"}
OUTPUT輸出:
no title
escape(轉(zhuǎn)碼)
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轉(zhuǎn)碼,url轉(zhuǎn)碼,在沒有轉(zhuǎn)碼的變量上轉(zhuǎn)換單引號,十六進制轉(zhuǎn)碼,十六進制美化,或者javascript轉(zhuǎn)碼.
默認(rèn)是html轉(zhuǎn)碼
index.php如下:
$smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|escape}
{$articleTitle|escape:"html"} {* escapes & " ' < > *}
{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *}
{$articleTitle|escape:"url"}
{$articleTitle|escape:"quotes"}
<a
href="{$EmailAddress|escape:"hexentity"}mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>
OUTPUT輸出:
'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'
<a
href="bob@me.netmailto:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net</a>
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.
在每行縮進字符串,默認(rèn)是4個字符(pear標(biāo)準(zhǔn)也是).
作為可選參數(shù),你可以指定縮進字符數(shù).
作為第二個可選參數(shù),你可以指定縮進用什么字符代替
index.php如下:
$smarty->assign('articleTitle', 'NJ judge to rule on nude beach.');
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|indent}
{$articleTitle|indent:10}
{$articleTitle|indent:1:"t"}
OUTPUT輸出:
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->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.');
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|lower}
OUTPUT輸出:
two convicts evade noose, jury hung.
nl2br(換行符替換成<br /> )
所有的換行符將被替換成 <br />.同php的nl2br()函數(shù)一樣.
index.php如下:
$smarty->assign('articleTitle', "Sun or rain expectedntoday, dark tonight");
$smarty->display('index.tpl');
index.tpl模板:
OUTPUT輸出:
regex_replace(正則替換)
尋找和替換正則表達式 .
Parameter Position Type Required Default Description
1 string Yes n/a This is the regular expression to be replaced.
替換正則表達式.
2 string Yes n/a This is the string of text to replace with.
使用什么文本字串來替換
index.php如下:
$smarty->assign('articleTitle', "Infertility unlikely tonbe passed on, experts say.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle}
{$articleTitle|regex_replace:"/[rtn]/":" "}
OUTPUT輸出:
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->assign('articleTitle', "Child's Stool Great for Use in Garden.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|replace:"Garden":"Vineyard"}
{$articleTitle|replace:" ":" "}
OUTPUT輸出:
Child's Stool Great for Use in Vineyard.
Child's Stool Great for Use in Garden.
spacify
是一種在字符串的每個字符之間插入空格或者插入其他的字符(串).
index.php如下:
$smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.');
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|spacify}
{$articleTitle|spacify:"^^"}
OUTPUT輸出:
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)
使用的格式化方式
是一種格式化浮點數(shù)的方法.例如十進制數(shù).使用sprintf語法格式化
index.php如下:
$smarty->assign('number', 23.5787446);
$smarty->display('index.tpl');
index.tpl模板:
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}
OUTPUT輸出:
23.58
24
strip(去除(多余空格)
替換所有重復(fù)的空格,換行和tab為單個.
index.php如下:
$smarty->assign('articleTitle', "Grandmother ofneight makest hole in one.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|strip}
{$articleTitle|strip:" "}
OUTPUT輸出:
eight makes hole in one.
Grandmother of eight makes hole in one.
Grandmother of eight makes hole in one.
strip_tags(去除html標(biāo)簽)
去除在<和>之間的所有標(biāo)簽,包括<和>.
index.php如下:
$smarty->assign('articleTitle', "Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|strip_tags}
OUTPUT輸出:
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).
檢查是否截取到詞的邊界
截取字符串開始的一段.默認(rèn)是80個.
你可以指定第二個參數(shù)作為在截取的那段字符串后加上什么字符.
默認(rèn)情況下,smarty會截取到一個詞的末尾,
如果你想要精確的截取多少個字符,把第三個參數(shù)改為"true"
index.php如下:
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
$smarty->display('index.tpl');
index.tpl模板:
{$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...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
upper(大寫 )
將變量改為大寫
index.php如下:
$smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|upper}
OUTPUT輸出:
IF STRIKE ISN'T SETTLED QUICKLY IT MAY LAST A WHILE.
wordwrap(行寬約束)
可以指定段落的寬度(也就是多少個字符一行,超過這個字符數(shù)換行).默認(rèn)80.
第二個參數(shù)可選,可以指定在約束點使用什么字符(默認(rèn)是換行符n).
默認(rè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->assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years.");
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|wordwrap:30}
{$articleTitle|wordwrap:20}
{$articleTitle|wordwrap:30:"<br>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<br>
from dad she hasn't seen in years.
Blind woman gets new kidney fr
om dad she hasn't seen in year
s.
組合使用多個操作符
可以在一個變量上應(yīng)用操作符,它們將從左到右依次組合應(yīng)用.多個操作符必須用"|"符號分開.
index.php頁面如下:
$smarty->assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.');
$smarty->display('index.tpl');
index.tpl模板:
{$articleTitle|upper|spacify}
{$articleTitle|lower|spacify|truncate}
{$articleTitle|lower|truncate:30|spacify}
{$articleTitle|lower|spacify|truncate:30:". . ."}
OUTPUT輸出:
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程序設(shè)計有所幫助。
相關(guān)文章
Zend Framework入門教程之Zend_Config組件用法詳解
這篇文章主要介紹了Zend Framework入門教程之Zend_Config組件用法,結(jié)合實例形式分析了Zend_Config組件針對各種類型配置文件操作的相關(guān)技巧,需要的朋友可以參考下2016-12-12PHP實現(xiàn)抓取Google IP并自動修改hosts文件
這篇文章主要介紹了PHP實現(xiàn)抓取Google IP并自動修改hosts文件,本文方法可以實現(xiàn)免翻墻上google,小編親測可用,需要的朋友可以參考下2015-02-02laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢
今天小編就為大家分享一篇laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10以實例全面講解PHP中多進程編程的相關(guān)函數(shù)的使用
這篇文章主要介紹了以實例全面講解PHP中多進程編程的相關(guān)函數(shù)的使用,包括對僵尸進程的處理等方面,極力推薦!需要的朋友可以參考下2015-08-08