常用的smarty变量操作

php模板引擎smarty的变量操作符可用于操作变量,自定义函数和字符。
语法中使用"|"应用变量操作符,多个参数用":"??指簟?/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.
32
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"}

<a

href="{$EmailAddress|escape:"hexentity"}mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a>

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‘

<a

href="[email protected]:%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.

在每行缩进字符串,默认是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(换行符替换成<br /> )
所有的换行符将被替换成 <br />.同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<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‘);

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:"&nbsp;"}

OUTPUT:

Grandmother of

eight makes hole in one.

Grandmother of eight makes hole in one.

Grandmother&nbsp;of&nbsp;eight&nbsp;makes&nbsp;hole&nbsp;in&nbsp;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‘);

index.tpl:

{$articleTitle}

{$articleTitle|strip_tags}

OUTPUT:

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.

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:"<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 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.

组合使用多个操作符
可以在一个变量上应用操作符,它们将从左到右依次组合应用.多个操作符必须用"|"符号分开. 
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:". .}

转:http://www.cnblogs.com/Yue0327/p/5493330.html

时间: 2024-11-29 04:11:07

常用的smarty变量操作的相关文章

常用的Smarty变量符操作

php模板引擎smarty的变量操作符可用于操作变量,自定义函数和字符.语法中使用"|"应用变量操作符,多个参数用":"??指簟?/DIV> capitalize[首字母大写] count_characters[计算字符数] cat[连接字符串] count_paragraphs[计算段落数]count_sentences[计算句数]count_words[计算词数]date_format[时间格式]default[默认]escape[转码]indent[缩进

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双

Jmeter之Bean shell使用-常用内置变量

Bean Shell常用内置变量   JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”); ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext. vars - (JMeterVariables):操作jmeter变量,这个变量实

smarty变量调节器如何使用

smarty变量调节器是用来改变显示的值,不改变变量的值.这里给大家总结了一下,希望对大家的smarty学习有参考意义. 1.capitalize[首字符大写]  调用方法: <?php$smarty->assign('articleTitle', 'next x-men film, x3, delayed.');?> 调用方法: {$articleTitle} {$articleTitle|capitalize} {$articleTitle|capitalize:true} 实现结果

01. Shell基础和使用技巧(工具+常用bash命令加速操作)

Shell脚本介绍和常用工具 Shell脚本 Shell脚本:实际就是windows里的批处理脚本,多条可一次执行的Shell命令集合.Linux上的脚本可以用很多种语言实现,bash shell是比较简单的一种,更高阶的可以用其他脚本语言,比如Python. Shell脚本对系统的管理能力非常强大,甚至可以使用Shell结合php实现Web管理Linux系统功能:可以自己写一个Web页面(示例:基于Php),对系统进行管理,包括查看删除用户,配置网络,发送邮件,重启系统,一键备份,一键搭建服务

[smarty] 在smarty模板中使用smarty变量初始化 javascript 变量的问题

// 总结:// 1/ 在smarty 模板文件中,使用从php中assign过来的smarty变量,一定需要使用双引号或单引号来括住smarty变量,如:var title="<!--{$title}-->";// 2/ 如果不使用引号括住,在smarty变量值为字符串的情况下,那么该字符串在javascript中会被作为javascript变量来解释,所以就会产生错误.// 3/ 变量值是数字,那么则不会产生错误// tpl 文件 <script> if(n

.Net常用技巧_VS2005[C#] 操作 Excel 全攻略(转)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; using System.Data.SqlClient; using System.Data.

svn常用命令与分支操作

创建分支 svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001 获得分支 svn co http://svn_server/xxx_repository/branches/br_feature001 合并主干上的最新代码到分支上 cd br_feature001 svn merge http://sv

SQL Server编程系列(2):SMO常用对象的有关操作

在上一篇讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的结构图: 上图是一个完整的涉及到各种关系的结构图.不过它们之间的层次结构关系周公已经在上一篇做了简单概述. 在本篇中周公还是在上一篇的基础上再做稍微深入一点的介绍,在本篇中主要讲述如何获取数据库常见对象信息,并且如何利用SMO来进行一些日常操 作:如创建Login,创建数据库.备份数据库和还原数据库.执行上面这些操作的SQL语句也许我们已经写过,下面我们来看看利用SMO来操