读书人

smarty学习札记

发布时间: 2012-11-08 08:48:12 作者: rapoo

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"}]

读书人网 >编程

热点推荐