Smarty ――内置变量的使用

来源:赵克立博客 分类: 其它 标签:css发布时间:2014-04-29 06:04:39最后更新:2014-04-29 06:04:39浏览:2248
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2014-04-29 06:04:39
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
在模版里,我们可以透过?Smarty?预先定义好的变量,以存取?PHP?中的?$_SERVER?变量或是?$_SESSION?变量等超全哉变量(Superglobals)。
???在模版中的用法如下:
{$smarty.server.SERVER_NAME}?相当于?$_SERVER['SERVER_NAME']
{$smarty.get.var}?相当于?$_GER['var']
{$smarty.session.id}?相当于?$_SESSION['id']
{$smarty.const.MY_CONST}?相当于?MY_CONNST
Smarty?保留变量的名称等同的PHP变量$smarty.get$_GET$smarty.post$_POST$smarty.request$_REQUEST$smarty.session$_SESSION$smarty.cookies$_COOKIE$smarty.env$_ENV$smarty.server$_SERVER$smarty.const利用define函数定义的常量 配置文件变量 Smarty?也可以透过配置文件来载入模版变量,虽然这种方式在实用中较为少见,但有时也有它的妙用。使用配置文件载入变量之前,我们需要建立一个配置文件: 假如配置文件名叫var.conf
  1. site_title?=?"?Sample?title"
  2. background_color?=?#eeeeee
  3. common_content?=?"This?is?common?Content"
复制代码 配置文件的语法为“变量名称?=?变量值”,如果变量值为包含了空白字符的字符串,就要用“"”(双引号)包起来。 在PHP程序里载入变量的方法是:
  1. $smarty->config_dir?=?配置文件的路径;
  2. $smarty->config_load('var.conf');//配置文件名
复制代码 和模版文件路径的设定一样,我们必须先指定?Smarty?对象的config_dir属性,这样才能从config_dir所指向的路径读取到设定档。接着用config_load方法来载入配置文件,这样一来我们就能够在模版里读取到配置文件的变量了。 注意:配置文件变量在模版里的写法和一般模版变量不太相同,我们要用“#变量名称#”来读取配置文件变量:
  1. <html>
  2. <head>
  3. <title>{#site_title#}</title>
  4. </head>
  5. <body?style="background-color:?{?#background_color#?}">
  6. <p>{?#common_content#?}</p>
  7. </body>
  8. </html>
复制代码 要注意的是,井号要和变量名称连在一起,而与标签定义符之间则可以有空白。 {#?tite_title?#}//错误的写法 {#site_title#}//这样写是对的 {?#site_title#?}//这样写也可以 我们可以不在PHP程序里载入配置文件,而在模板里载入。像这样子:
  1. {config_load?file="ch05/05.conf"}
  2. <html>
  3. <head>
  4. <title>{#site_title#}</title>
  5. </head>
  6. <body?style="background-color:?{?#background_color#?}">
  7. <p>{?#common_content#?}</p>
  8. </body>
  9. </html>
复制代码 这样一来,就能针对模版来载入不同的配置文件,也使得我们在PHP程序里不必再为模版的设定多操一份心。 但注意的是,在PHP程序里一定要设定Smarty对象的config_dir属性,否则会出错。 使用变量修饰函数 基本语法:{$变量名|修饰函数} 如: {$num4|number_format} 相当于如下PHP程序: <?php?echo?number_format($num4);??> 带有参数的变量修饰函数 语法:{$变量名称|函数名称:参数1:参数2:...} 如: {$num5|number_format:2} 相当于如下PHP程序: <?php?echo?number_format($num5,2);??> 嵌套多个变量修饰函数 我们可以用如下语法来嵌套多个变量修饰函数 {$变量名称|变量修饰函数名称1:参数|变量修饰函数名称2:参数|变量修饰函数名称3:参数…} 如: {$num3|trim|number_format:2} 效果等同于: <?php?echo?number_format(trim($num3),2);??> 因此,越左边的变量修饰函数在替换成PHP程序里,会越先执行。  


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python