Smarty教程,语法与应用

配置:

下载Smarty文件放到你们站点中,然后创建两个文件夹
templates 存放模板文件
templates_c 存放编译后的文件

首先需要在项目中包含smarty类文件

require_once("./Smarty/Smarty.class.php"); 

语法:

$smarty = new Smarty(); //创建smarty实例对象$smarty 

$smarty->templates("./templates"); //设置模板目录 

$smarty->templates_c("./templates_c"); //设置编译目录 

$smarty->cache("./cache"); //缓存目录 

$smarty->cache_lifetime = 0; //缓存时间 

$smarty->caching = true; //缓存方式

$smarty->left_delimiter = "{#";  //模板标签开始符

$smarty->right_delimiter = "#}"; //模板标签结束符

$smarty->register_function("self","test"); // 注册自定义函数test

$smarty->assign("name", "zaocha"); //进行模板变量替换 

$smarty->display("index.htm"); //编译并显示位于./templates下的index.htm模板 

模板调用:

{htmlspecialchars($fang)}   // 直接使用php内置函数 

{$fang|htmlspecialchars}   // 变量调节器:将$fang变量作为htmlspecialchars函数的第一个参数 

{time()}    // 使用PHP内置函数

{ucfirst(strtolower($key))}   // 也可以嵌套使用

{$key|strtolower|ucfirst}    // 使用变量调节器,等同于上面一行代码

{assign var="key" value="lAmp"}    // 使用Smarty定义一个变量

{$info|default:'Hello World'}  //设置变量默认值:Hello World

{$smarty.get.id}   // 输出全局变量$_GET

{$smarty.const.HOST}   // 输出常量

{literal}     // 将可能与smaryt产生冲突的代码都放到literal这个标签中

模板循环

1. foreach

代码如下

{foreach from=$array item=array_id} 
{foreachelse} 
{/foreach}

或者

{foreach $userdata as  $k => $v }
{/foreach}
2. section

代码如下

{section name = name loop = $varName[, start = $start, step = $step, max = $max, show = true]}

name: section的名称,不用加$
$loop: 要循环的变量,在程序中要使用assign对这个变量进行操作。
$start: 开始循环的下标,循环下标默认由0开始
$step: 每次循环时下标的增数
$max: 最大循环下标
$show: boolean类型,决定是否对这个块进行显示,默认为true

section具有属性值

  1. index: 循环下标,默认为0
  2. index_prev: 当前下标的前一个值,默认为-1
  3. index_next: 当前下标的下一个值,默认为1
  4. first: 是否为第一下循环
  5. last: 是否为最后一个循环
  6. iteration: 循环次数
  7. rownum: 当前的行号,iteration的另一个别名
  8. loop: 最后一个循环号,可用在section块后统计section的循环次数
  9. total: 循环次数,可用在section块后统计循环次数
  10. show: 在函数的声明中有它,用于判断section是否显示
{section name=loop loop=$News} 
    {$News[loop].newsID} 
    {$News[loop].newsTitle} 
{sectionelse} 
    空
{/section}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值