Smarty笔记、smarty常用配置 变量 循环与变量调节器

本文介绍了Smarty模板引擎的使用,包括如何去除视图文件中的PHP代码,Smarty的配置如左右定界符设置,变量的使用如普通变量、保留变量、配置文件变量,以及循环(foreach、section)和条件判断(if)的语法和应用。此外,还讲解了变量调节器的概念和常见应用。
摘要由CSDN通过智能技术生成

1 如何彻底去除视图文件中的PHP代码

  • html代码与PHP代码分离,其实就是前端人员与程序员分离
  • 思路:查找替换
    在这里插入图片描述

2 Smarty

  • smarty就是一个类文件

2.1 举例

在这里插入图片描述
在这里插入图片描述

2.2 Smarty常用配置

2.2.1 左右定界符

左边界符:$smarty->left_delimiter="<{";
右边界符:$smarty->right_delimiter="}>";

2.2.2 smarty常用目录的配置
  • smarty类文件中的构造方法对所有的目录进行了初始化
  • (1)设置或读取视图文件目录
  • 设置视图文件目录:$smarty->setTemplateDir(新目录文件)
  • 读取视图文件目录:$smarty->getTemplateDir()
  • (2)其他目录的设置和读取方法
  • 编译目录的设置:$smarty->setCompileDir()
  • 编译目录的读取:$smarty->getCompileDir()
  • 配置目录的设置:$smarty->setConfigDir()
  • 配置目录的读取:$smarty->setConfigDir()

3 smarty中的变量

在PHP中,能用smarty解决的,尽量不要使用PHP语法

3.1 普通变量

  • 所有的PHP变量,都可以传递到视图文件来使用
  • 但是,在视图中,对象和资源变量,不常用
  • 在模板中,读取数组的元素,可以使用中括号语法和点语法

3.2 保留变量

3.2.1 访问页面请求变量
  • 所有的超全局数组变量,可以在视图文件中直接使用
  • smarty获取超区局变量
    {$smarty.get.参数}
    {$smarty.post.参数}
    {$smarty.request.参数}
    {$smarty.server.参数}
    {$smarty.session.参数}
    {$smarty.cookie.参数}
    {$smarty.files.参数}
3.2.2 访问PHP中的预定义变量**
  • {$smarty.const.常量名}
3.2.3 smarty时间戳**
  • {$smarty.now}
  • 格式化时间戳:{$smarty.now|date_format:’%Y-%m-%d %H:%M:%S’}

3.3 配置文件变量

3.3.1 定义配置文件
  • 设置配置文件的工作目录:$smarty->setConfigDir()
  • 读取配置文件的工作目录:$smarty->getConfigDir()
  • 配置文件拓展名:.conf、.ini
  • 配置文件的注释:#
  • 一行只能写一个配置
  • 格式是:变量名=变量值
  • 变量名不带$符号,变量值不带引号
3.3.2 在视图文件中,如何访问配置变量
<!--加载配置文件-->
<{config_load file="myConfig.conf"}>
<!--读取配置文件参数-->
<{#a#}><br>
<{$smarty.config.b}><br>
<{$smarty.config.c}><br>
3.3.3 配置文件变量分组
  • 使用中括号对配置文件进行分组
    在这里插入图片描述
3.3.4 在视图文件读取分组的配置变量
  • <{config_load file=“myConfig.conf” section=“tw”}>

4 smarty中的循环 foreach

4.1 foreach语法格式

  • foreach可以遍历所有类型的数据,包含,枚举数组、关联数组、混合数组、多维数组
  • {foreach $arr as $key=>$value}
    循环的内容
    {/foreach}
  • 面向非程序员的写法
    {foreach from=’ ’ key=’ ’ item=’ '}
    {/foreach}

4.2 输出一维数组

在这里插入图片描述

4.3 输出二维数组

在这里插入图片描述

4.4 foreach常用属性

参数说明
@key输出当前值的索引,可能是整形索引,也可能是字符索引
@index当前数组索引,从0开始计算
@iteration当前循环的次数,从1开始计算
@first当首次循环时,值为true
@last当最后一次循环时,值为true
@total整个循环的次数,可以在foreach内部或外部使用

在这里插入图片描述

5 smarty中的循环 section

5.1 foreach语法格式

  • section循环,与PHP的for循环相似
  • for循环可以指定循环起点、步长值、最大循环次数
  • for只能遍历枚举数组,数组下标必须是从0开始的正整数
  • for不能遍历关联数组(数字下标是字符串)
  • {section name=’ ’ loop=’ ’ start=’ ’ step=’ ’ max=’ '}
    {/sextion}
参数说明
name每次循环的索引,相当于$i
loop循环的数组变量
start循环的初始值,默认为0,从第1个元素开始循环
step每次循环的步长值,默认为1
max最大循环次数

name和loop属性是必须的

5.2 遍历一维枚举数组

在这里插入图片描述

5.3遍历二维数组

在这里插入图片描述

6 smarty中的条件判断 if

  • PHP中的运算符在smarty中都可以使用

6.1 if三种语法结构

  • (1)只判断true的情况
    {if 条件判断 }
    条件为true执行的代码
    {/if}

  • (2)既判断true,也判断false
    {if 条件判断 }
    条件为true执行的代码
    {else}
    条件为false执行的代码
    {/if}

  • (3)多条件判断
    {if 条件1 }
    执行的代码
    {elseif 条件2 }
    执行的代码
    {elseif 条件3 }
    执行的代码
    {else}
    执行的代码
    {/if}

6.2 if中的运算符

在这里插入图片描述

6.3 应用举例:表格隔行变色

在这里插入图片描述

7 smarty中的变量调节器

7.1

  • 变量调节器,就是对变量进行格式的函数,对变量进行格式化输出
  • 语法格式:{$var |调节器1:参数1:参数2:参数N |调节器2 |调节器3····}

7.2 常用变量调节器

调节器说明对应PHP的函数
upper转成全大写strtoupper()
lower转成全小写strtolower()
nl2br将\n换行符,转成<br/>nl2br()
replace查找替换str_replace()
date_format时间戳格式化date()
truncate截取字符串substr()或mb_substr()
转成全大写:<{$tittle|upper}><br>
转成全小写:<{$tittle|lower}><br>
查找替换:<{$tittle|replace:"we":"we don't"}><br>
转成全大写:<{$tittle|upper}><br>
当前时间戳:<{time()}><br>
当前时间戳:<{$smarty.now}><br>
格式化时间戳:<{date('Y-m-d H:i:s',time())}><br>
格式化时间戳:<{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}>
<{$tittle|truncate:10:''}><br>
<{$tittle|truncate:10}>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值