首页 > 开发 > PHP > 正文

PHP详细彻底学习Smarty

2024-05-04 22:12:51
字体:
来源:转载
供稿:网友
基本语法 
所有的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"} 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表