Smarty模版设计基本语法

2014-03-10 22:15:00
admin
原创
4501

模版中的注释:
{* ……*}         //可以包括一行或多行,且注释内容不会在浏览页面源代码中查看到

由PHP分配的模版变量用$开始,可包含字母数字下划线。
在模版中访问关联数组有两种方式:用[],或者用 .

在模版中,使用Smarty的语法总结后只有两种:变量 和 函数

函数:
使用方法如同独立标签,函数名如同标签名,函数参数如同标签属性。
<funcname attr1=”” attr2=”” attr3=””>         //函数名,后跟参数
例如:{conifg_load file=”./conifgs/conifg.ini”}             //载入脚本文件函数
块函数:
使用方法如同闭合标签。
{blockname attr1=”” attr2=”” }
内容
{/blockname}

变量:
Smarty模版中有3中变量应用形式:
1.从PHP中分配的变量(最主要的)
通过Smarty对象的assign()方法可将任意一种数据类型分配给模版使用。
在模版中调用PHP分配的变量需要在前面加上 $ 符号。     //即模版变量诞生在PHP中,再由模版调用
应用:在模版中输出从数据库服务器获取的动态数据信息。

2.从配置文件中读取的变量:
Smarty配置文件中的变量并不是通过PHP脚本去读取的,而是在Smarty模版中直接读取并应用的变量。

3.模版中的保留变量:
即模板已经定义好的内部默认变量,直接使用即可。
{$smary} 就是模板中的保留变量,并且是一个数组类型(二维数组)。
{$smary}变量是Smarty引擎自动已声明好的:
$smarty->assign(“smarty”, array(           //第一个smarty是PHP脚本中创建的对象,可自定义;第二个smarty是Smarty引擎默认设定的保留变量,不可改变
“get”=>$_GET,
“post”=>$_POST,
“now”=>time(),
…………
)
);
使用如:$smarty.now     即time()

从配置文件中读取变量
过程:在模版文件中先加载配置文件,再使用当中的变量
配置文件的语法格式:
#注释内容                #使用#号表示注释
变量名=“value”          #配置文件不是PHP脚本,所以变量名无 $ 符,结尾无 ; 号,值用双引号括起来,默认为全局变量

[节名]                       #定义节的名字,以下都是该节中的局部变量
变量名=“value”         #本节中的局部变量,覆盖同名的全局变量
变量名=““”很长的
一个
字符串“””           #使用三个引号“”“可以将一个字符串声明在多行
注:在节中声明的变量都是局部变量,在节之外的项都认为是全局的。
配置文件在window下用.ini为后缀名,在Linux下用.conf为后缀名。

加载配置文件
必须先用内建函数 conifg_load 将配置文件加载到模版中才能发文配置变量。
{config_load file=”配置文件名称” }                      //只能加载配置文件中的全局变量
{config_load file=”配置文件名称” section=“节名”}         //加载配置文件中的特定节中的局部变量

在模板中引用配置文件中的变量
配置文件中的变量要用两个#括起,或者用smarty模版的保留变量$smarty.config 来调用
即    {#配置变量名#}                                     //主意没有$符号!
{$smarty.config.配置变量名}                 //主意没有$符号!

在Smarty模板中的变量调节器
即在模板中用变量调节器函数,在变量输出之前进行一些处理修改。
使用方式:
{$变量|调节器函数名:”参1″:”参2″:”参3″}                //参数由冒号隔开
{$变量|调节器函数1|调节器函数2|调节器函数3}

Smarty默认提供的变量调节器函数
这里值写几个常用的:
date_format     //日期格式化
escape               //转码
Regex_replace      //寻找和替换正则表达式
truncate          //从字符串开始处截取某长度的字符

Smarty的缓存技术
1.开启缓存
2.指定缓存文件存放目录
3.设置缓存时间周期
$smarty -> caching = 1;                                       //启用缓存
$smarty -> setCacheDir(“./cache”);                     //指定缓存文件保存的目录
$smarty -> cache_lifetime = 60*60*24*7;             //设置缓存时间为1周
$smarty -> display(‘index.tpl’, $_SERVER[‘REQUEST_URI’]);    //将新闻ID作为第二个参数提供

版权声明

版权声明:本站原创文章,转载请注明作者和出处。

本站点采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议