smarty使用总结

 

Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法. 

Smarty要求web服务器运行php4.0.6和以上版本. 

smarty安装需要smarty库文件。可以去官方网站http://smarty.php.net下载。

网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开 
http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。 


基本语法 

所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出. 

默认情况下是 {和},但它们是可定制的.定制方法是: 
$smarty->left_delimiter = '<!--{'; 
$smarty->right_delimiter = '}-->'; 

1.注释

模板注释被*号包围,例如 {* this is a comment *} 
smarty注释将不被输出.它是模板内在的注释. 

2.变量 
模板变量以$开头,可以包含数字,字母和下划线。 
config_file变量是例外要用#变量名#的方法引用 

3.函数 
smarty标签输出一个变量或者调用某种函数. 
在定界符内函数和其属性将被处理和输出.例如: 
{funcname attr1="val" attr2="val"}. 
funcname为函数的名称比如:include等,attr1,attr2为属性名,val为属性相应的值。 

在模板里无论是内建函数还是自定义函数都有相同的语法. 
内建函数将在smarty内部工作,例如 {if}, {section} 和{strip}.他们不能被修改. 
自定义函数通过插件机制起作用,它们是附加函数,可以随意修改,自行添加. 
例如 {html_options} and {html_select_date} 

4.属性 
静态数值不需要加引号,布尔值(真或假)也不需要引号,可以是true,on,yes或者false,off,no. 但是字符串例外.变量同样被用到了,它们也不能加引号. 

5.在字符串中插入变量 
只能识别数字,字母,下划线和[]的组合,如果为复杂的形式需要用``将变量隔起来。比如{func var="test $foo.bar test"} 中只能识别变量$foo,要识别$foo.bar,需要写成{func var="test `$foo.bar` test"}的格式。 

6.一些保留字的显示方法 
在模板中如果要将smarty的一些保留字作为语言的内容显示出来,比如显示分隔符,默认为{}的方法是: {ldelim},{rdelim} 或者{$smarty.ldelim},{$smarty.rdelim} 或者可以把{}放在{literal} .. {/literal} 中间输出。 

smarty的保留变量 

{$smarty}保留变量可以被用于访问一些特殊的模板变量. 
以下是全部. 

页面请求变量 
以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path, {$smarty.request.username}取得get/post/cookies/server/env的复合变量。 

{$smarty.now}变量用于访问当前时间戳. 
可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"} 

{$smarty.const} 
你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL} 

{$smarty.capture} 
可以通过 {capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问. 

{$smarty.config} 
{$smarty}变量 可以访问已经加载的config变量. 
例如 {$smarty.config.foo}就可以表示 {#foo#}. 

{$smarty.section}, {$smarty.foreach} 
{$smarty} 变量可以访问'section'和'foreach'循环的属性. 

{$smarty.template} 
显示当前被处理的模板的名字. 

{$smarty.version} 
显示smarty模板的版本 

{$smarty.ldelim} 
显示左分隔符 

{$smarty.rdelim} 
显示右分隔符

变量调节器 
变量调节器用于变量,自定义函数和字符串. 
可以使用'|'符号和调节器名称应用调节器. 
变量调节器由赋予的参数值决定其行为. 
参数由':'符号分开. 
如果你用变量调节器调节数组变量,结果是数组的每个值都被调节.如果你想要调节器调节整个数组,你必须在调节器名字前加上@符号. 
例如: {$articleTitle|@count}(这将会在输出 $articleTitle 数组里的数目) 

capitalize 
将变量里的所有单词首字大写. 参数值boolean型决定带数字的词是否首字大写。默认不大写 

count_characters 
计算变量值里的字符数.参数值boolean型决定是否计算空格数。默认不计算空格 

cat 
将cat里的参数值连接到给定的变量后面.默认为空。 

count_paragraphs 
计算变量里的段落数量 

count_sentences 
计算变量里句子的数量 

count_words 
计算变量里的词数 

date_format 
日期格式 

第一个参数控制日期格式. 
如果传给date_format的数据是空的,将使用第二个参数作为默认时间 

%a - 星期几的简写 

%A - 星期几的全写 

%b - 月份的简写 

%B - 月份的全写 

%c - 日期时间06/12/05 11:15:10 

%C - 世纪时间 

%d - 一个月的第几号(从 01 到 31) 

%D - 同 %m/%d/%y 

%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31) 

%g - 世纪 

%G - 世纪 [0000,9999] 

%h - 同%b 

%H - 24小时形式的小时(从00到23) 

%I - 12小时形式的小时(从01到 12) 

%j - 一年中的第几天(从 001 到 366) 

%k - 24小时形式的小时,单数字前面加空格. (从 0 到 23) 

%l - 12小时形式的小时,单数字前面加空格.(range 1 to 12) 

%m - 月份 (range 01 to 12) 

%M - 分 

%n - 换行符 

%p - 显示早上还是下午`am' 或 `pm' 

%r - a.m. 或 p.m.形式的时间 

%R - 24小时形式的时间 

%S - 秒 

%t - tab符号 

%T - 同%H:%M:%S 

%u - 用 [1,7],表示星期几 

%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算 

%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天 

%w - 用数字的形式表示是星期的第几天, 星期天 为 0 

%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算 

%x - 显示日期:月/日/年 

%X - 显示时间:小时:分钟:秒 

%y - 不包括世纪的年份 

%Y - 包括世纪的年份 

%Z - 时区 

%% - 输出% 

其中有些有时不能正常输出。 

default 
默认 
为空变量设置一个默认值. 
当变量为空或者未分配的时候,将由给定的默认值替代输出. 

escape 
转码 
参数值为html,htmlall,url,quotes,hex,hexentity,javascript。默认是html转码 

indent 
缩进 
在每行缩进字符串,第一个参数指定缩进多少个字符,默认是4个字符.第二个参数,指定缩进用什么字符代替。 

lower 
小写 
This is used to lowercase a variable. 
将变量字符串小写 

nl2br 
换行符替换成<br /> 

regex_replace 
正则替换 
寻找和替换正则表达式.必须有两个参数,参数1是替换正则表达式. 参数2使用什么文本字串来替换 

replace 
替换 
简单的搜索和替换字符串必须有两个参数,参数1是将被替换的字符串. 参数2是用来替换的文本 

spacify 
spacify是在字符串的每个字符之间插入空格或者其他的字符串. 参数表示将在两个字符之间插入的字符串,默认为一个空格。 

string_format 字符串格式化 
是一种格式化浮点数的方法.例如十进制数.使用sprintf语法格式化。参数是必须的,规定使用的格式化方式。%d表示显示整数,%.2f表示截取两个浮点数。 

strip 去除(多余空格) 
替换所有重复的空格,换行和tab为单个或者指定的字符串. 如果有参数则是指定的字符串。 

strip_tags 去除所有html标签 

truncate 截取 
参数1,规定截取的字符数.默认是80个. 
第二个参数指定在截取的那段字符串后加上什么字符.默认为... 
第三个参数决定是否精确截取,默认情况下为false,则smarty不会分割单词。 

upper 将变量改为大写 

wordwrap 行宽约束 
第一个参数指定段落的宽度(也就是多少个字符一行,超过这个字符数换行).默认80. 
第二个参数指定在约束点使用什么字符(默认是换行符\n). 
第三个参数决定是否精确截取字符,默认情况下是不精确截取,就是截取时不能分开单词。 内建函数
内建函数不能擅自修改。 
capture 
capture函数的作用是收集模板输出的数据到一个变量里,而不是把它们输出到页面.例如任何在 {capture name="foo"}和{/capture}之间的数据都被收到了由函数的名称属性指定的变量{$foo}里,或者{$smarty.capture.foo}里。如果函数没有名字属性,将使用"default".每个{capture}都必须对应{/capture},也不能嵌套使用capture函数。 

config_load 
引用配置文件 
file是必须的,说明要包含进来的配置文件名称,section说明要加载的部分的名称,scope被处理的变量的作用域.必须是local,parent或者global. 
local的意思是变量将在本模板里被加载. 
parent 的意思是变量将在本模板和上级模板被加载. 
global的意思是变量将应用到所有的模板.默认为local。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值