Smarty模本引擎

封装一个自定义Smarty引擎

 

Smart模板注释  基本语法:{* 注释内容 *}php

Smarty模板中的变量css

简单变量html

四种标量类型:整型浮点型布尔型字符串型数组

数组变量浏览器

能够给模板分配一个数组变量使用(一维和多维均可以)cookie

对象变量session

咱们一样的能够将一个对象变量分配给模板文件,而后经过{$对象名->属性名}来访问这个对象的属性值!函数

变量调节器

基本语法布局

不一样的调节器有不一样的名字,能够完成不一样的功能,而且不一样的调节器都有本身不一样的参数!post

{$变量名|调节器名:参数1:参数2:参数3……}

cat

做用:主要是对两个字符串进行链接操做!

{$变量名1|cat$变量名2|cat$变量名3}

 

date_format

做用:对时间戳进行格式化!参数有不少,可是主要的参数仍是表明年月日时分秒的参数!

{$变量名(时间戳)|date_format:‘%Y-%m-%d %H%M%S}

 

default

做用:当一个变量为空或者没有定义的时候,默认的就以default后面的值进行填充!

 {$变量名|default:值}

 

lower upper

做用:将字符串里面的英文字母所有转换成小写或大写!

{$变量名|lower}

{$变量名|upper}

 

escape

做用:加上这个调节器后,浏览器就不会解析相关的html等标签!

 {$变量名|escape}

 

strip_tags

做用:去掉jshtml等相关的标签!

{$变量名|strip_tags}

 

nl2br

做用:将字符串中的\n转换为<br />标签,从而在显示的时候真正的实现换行的效果

{$变量名| nl2br}

 

replace

做用:将变量中的字符串1所有替换成字符串2

{$变量名| replace:字符串1:字符串2}

 

tring_format

做用:讲字符串进行格式化!好比:%d表明整型,%s表明字符串!

{$变量名| string_format:%d}

 

truncate

做用:只截取前多少多少的字符,后面用…代替!

{$变量名|truncate:字符串长度:’…’}

注意:

1, 这的…是默认结束符,能够省略!

2, 这里的…占用字符串指定的长度!

3, 这里的结束符也可使用用户指定的字符串

4, 若是实在不想显示任何的结束符,可使用null代替

5, 也能够省略字符长度,默认为80个!

6, 截取中文的时候容易出现乱码:

Smarty系统变量

也叫做Smarty保留变量,就是Smarty系统本身已经定义好了,不须要用户手动分配给模板,能够直接在模板文件中使用的变量!

经常使用的有如下的几个:

{$smarty.get.变量名称}      至关于PHP中的$_GET

 

{$smarty.post.变量名称}    至关于PHP中的$_POST

 

{$smarty.cookies.变量名称}   至关于php中的$_COOKIE

 

{$smarty.session.变量名称}   至关于php中的$_SESSION

 

{$smarty.now}        至关于php中的time函数,返回一个当前时间的时间戳!

 

Smarty的内置语句

 

foreach

基本语法

{foreach from=数组名 item=元素的值的名 key=元素的键名 name=名称}

  {foreachelse}

{/foreach}

主要功能:用于数组元素的遍历!

from要遍历哪一个数组元素(必选项)

item系统每次将遍历的结果放入到变量item中(必选项) 

key键名

name给本次foreach遍历起一个名字

 

foreach中的内置变量

$smarty.foreach.name.index:  表明循环的索引值,默认是从0开始,其中的name就是在foreach选项中给foreach循环起的一个名字!也就是说,若是想使用foreach内置变量,就必须先给foreach循环起一个名字!

 

$smarty.foreach.name.iteration循环迭代,表明当前是第几回循环,默认从1开始!

 

$smarty.foreach.name.total:  表明本次一共循环了多少次!

 

include

基本语法:  {include file=文件名 变量名=变量值}

主要功能:实现文件加载,经常使用于网页布局

ifelseifelse 

 

literal标签

基本语法

{literal} 

……

{/literal}

主要的功能就是把被包裹的标记当作普通文件直接输出,也就是不会被smarty解析,主要用于包裹jscss标签!

相关文章
相关标签/搜索