语法中使用"|"应用变量操作符,多个参数用":"??指簟?/DIV>
capitalize[首字母大写]
count_characters[计算字符数]
cat[连接字符串]
count_paragraphs[计算段落数]
count_sentences[计算句数]
count_words[计算词数]
date_format[时间格式]
default[默认]
escape[转码]
indent[缩进]
lower[小写 ]
nl2br[换行符替换成<br />]
regex_replace[正则替换]
replace[替换]
spacify[插空]
string_format[字符串格式化]
strip[去除(多余空格)]
strip_tags[去除html标签]
truncate[截取]
upper[大写]
wordwrap[行宽约束]
组合使用多个操作符
实例如下:
{* 标题大写 *} <h2>{$title|upper}</h2> {* 取其前40个字符 *} Topic: {$topic|truncate:40:"..."} {* 格式化文字串 *} {"now"|date_format:"%Y/%m/%d"} {* 在自定义函数里应用调节器 *} {mailto|upper address="[email protected]"} 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
$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
$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.
$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
$smarty = new Smarty; $smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'"); $smarty->display('index.tpl');
{$articleTitle} {$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>
'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' <a href="[email protected]:%62%6f%62%40%6d%65%2e%6e%65%74">bob@me.net</a>
$smarty = new Smarty; $smarty->assign('articleTitle', 'NJ judge to rule on nude beach.'); $smarty->display('index.tpl');
{$articleTitle} {$articleTitle|indent} {$articleTitle|indent:10} {$articleTitle|indent:1:"t"}
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');
{$articleTitle} {$articleTitle|lower}
Two Convicts Evade Noose, Jury Hung. two convicts evade noose, jury hung.
nl2br(换行符替换成<br /> )
所有的换行符将被替换成 <br />.同php的nl2br()函数一样.
index.php如下:
$smarty = new Smarty; $smarty->assign('articleTitle', "Sun or rain expectedntoday, dark tonight"); $smarty->display('index.tpl');
{$articleTitle|nl2br}
Sun or rain expected<br />today, dark tonight
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 = new Smarty; $smarty->assign('articleTitle', "Infertility unlikely tonbe passed on, experts say."); $smarty->display('index.tpl');
{* replace each carriage return, tab & new line with a space *}{* 使用空格替换每个回车,tab,和换行符 *} {$articleTitle} {$articleTitle|regex_replace:"/[rtn]/":" "}
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');
{$articleTitle} {$articleTitle|replace:"Garden":"Vineyard"} {$articleTitle|replace:" ":" "}
Child's Stool Great for Use in Garden. Child's Stool Great for Use in Vineyard. Child's Stool Great for Use in Garden.
$smarty = new Smarty; $smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.'); $smarty->display('index.tpl');
{$articleTitle} {$articleTitle|spacify} {$articleTitle|spacify:"^^"}
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');
{$number} {$number|string_format:"%.2f"} {$number|string_format:"%d"}
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');
{$articleTitle} {$articleTitle|strip} {$articleTitle|strip:" "}
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 <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>."); $smarty->display('index.tpl');
{$articleTitle} {$articleTitle|strip_tags}
Blind Woman Gets <font face="helvetica">New Kidney</font> from Dad she Hasn't Seen in <b>years</b>. Blind Woman Gets New Kidney from Dad she Hasn't Seen in years.
$smarty = new Smarty; $smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); $smarty->display('index.tpl');
{$articleTitle} {$articleTitle|truncate} {$articleTitle|truncate:30} {$articleTitle|truncate:30:""} {$articleTitle|truncate:30:"---"} {$articleTitle|truncate:30:"":true} {$articleTitle|truncate:30:"...":true}
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');
{$articleTitle} {$articleTitle|upper}
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');
{$articleTitle} {$articleTitle|wordwrap:30} {$articleTitle|wordwrap:20} {$articleTitle|wordwrap:30:"<br>n"} {$articleTitle|wordwrap:30:"n":true}
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<br> from dad she hasn't seen in years. Blind woman gets new kidney fr om dad she hasn't seen in year s.
$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程序设计有所帮助。