smarty学习笔记
?
1.什么是smarty:smarty是用php开发的一个模板引擎,smarty提供了一种易于管理和使用的方法,将phph代码从HTML页面分离出来。
?
2.smarty注释:注释部分包含在"{*"和"*}"之间。而且注释部分不会被发送到客户端。而且在网页上查看源文件的时候看不到这些注释
?
3.普通变量和保留变量:
普通变量也就是我们自己定义的变量,它有3种来源方式:
a.在php程序中使用assign()方法定义的变量
<?php
$smarty = new Smarty();
$smarty->assign("name","value");
?>
?
b.在模板中直接定义的变量
{assign var="name" value="value"}
?
c.配置文件中的变量
?
保留变量$smarty——相当与$_request等方式一样,获取数据
{$smarty.get.username}
?
保留变量除了可以访问请求变量和系统环境变量一样,它还可以访问程序中的常量
<?php
define('CONST_MESSAGE','我是常量');
?>
之后在模板中使用{$smarty.const.CONST_MESSAGE}可以取出
?
?
4.foreach循环:
{foreach from=$arrayName item=varName key=index name=description}
{/foreach}
from——指定要循环的数组名称
item——指定当前数组内元素的变量名
key——指定当前数组索引的变量名
name——描述性文字
在使用foreach循环时,如果foreach循环为空或者不存在可以用foreachelse处理
{foreach from=$arrayName item=varName key=index name=description}
循环体
{foreachelse}
没有循环
{/foreach}
?
5.section循环
section循环和foreach一样也是循环数组中的数据,但是它提供了比foreach更多的属性来灵活控制循环的执行
{section name=varName loop=$arrayName start=startindex step=stepNum max=num show=booleam}
循环体
{/section}
?
name——指定当前section的名称
loop——指定循环的次数
start——指定循环开始的索引位置
step——循环的位移长度
max——循环的最大次数
show——指定是否显示当前的section
?
{section name=day loop=$week}
{$week[day]}
?
{sectionelse}
没有循环
{/section}
?
6.smarty包含文件:
{include file="header.tpl"}——用于包含静态页面或模板
{include_php file=""}——用于包含一个脚本,php文件
?
7.insert:用来包含php脚本的函数,它可以使模板中指定的部分不会被缓存
<?php
require("Smarty.class.php");
function insert_getDate(){
?? return date("Y-m-d H:ms");
}
$smarty = new Smarty();
$smarty->display("sdfsdf.tpl");
?>
?
取出为:{insert name="getDate"}
?
7.模板的修饰符:
1》capitalize修饰符可以将指定变量中所有单词的首字母转换为大写
{$name|capitalize}——变量后用|隔开
?
2》count_characters修饰符用于计算变量中字符数
{$name|count_characters}
?
3》count_words修饰符用于计算变量中单词总数
{$name|count_words}
?
4》date_format修饰符用于对日期和时间进行格式化
{$data|date_format:"%H:%M:%S"}
?
5》default修饰符可以给变量指定一个默认的值
{$sex|default:"男"}
?
6》strip_tags修饰符可以用于过滤HTML标签,以增强程序的安全性
{$talk|strip_tags}
?
7》truncate修饰符可以用于截取指定数量的字符,默认情况下为80个
{$title|truncate:20:"..."}
?
?
?
[{$cr.create_time|date_format:"%Y-%m-%d %H:%M:%S"}]