php-smarty模板使用教程(二)
第一部分(入口):smarty模板介绍和入门
------------------------新内容开始———————————— Smarty 模板设计篇 四、内建函数 1、 capture 语法: {capture name=‘var’} name表示将内容保存到指定的变量中 内容 {/capture} 捕获函数之间的内容,而不是输出 输出格式: {$smarty.capture.var} 2、 config_load {config_load file=“file”section=“section”} 加载配置文件 File:要加载的配置文件名称 Section:要加载的配置节 关于配置文件中的变量有以下两种引用方式: {#var#} {$smarty.config.var} 3、 foreach,foreachelse {foreach from=数组 key=键 name=名称 item=内容 } {foreachelse} {/foreach} foreach函数用于遍历数组 foreachelese函数表示当数组没有任何数据时执行的代码 From:要遍历的数组 Key:遍历到的数组下标 Item:遍历到的数组元素值 Name:为当前的foreach命名 l foreach 的内置变量 $smarty.foreach.name.index :索引 从0开始排列 $smarty.foreach.name.iteration :第几次 从1开排列 $smarty.foreach.name.first :如果是第一次执行时为true $smarty.foreach.name.last :如果是最后一次执行时为true $smarty.foreach.name.total :循环总次数 l foreach 的内置变量 3.0 {foreach $myarray as $key => $value} {$value@iteration} 当前循环是第几次 {$value@index} 循环索引 {$value@first}第一次循环时为true {$value@last}最后一次循环时为true {$value@total}循环总次数 {/foreach} 4、 include {include file=“file” assign=“var” [var ...]} 包含另一个模板文件 File:要包含的模板文件 Assign:将要包含的文件的结果保存至指定的变量,本次不会输出 [var …]:可以给模板传参 名=值 在php中传递的变量可以在子模板中使用5、include_php { include_php file=“file” assign=“var” once=“true|false”} 包含一个php文件 File:要包含的php文件 Assign:将输出结果保存至指定的变量中 Once:是否只包含一次 举例: 现在我想在模板中显示最新的系统时间 在smarty3.0以前,可以直接使用include_php内建函数,但是后来考虑到一些安全方面的问题,所以在smarty3.0以后,将这个功能保留到了SmartyBC.class.php这个文件中
6 insert { insert name=“func”assign=“var” [var ...] } 使用insert可以调用某个php自定义函数 function insert_func(){......} name:要调用的函数名称 这个函数在php中必须以insert_为前缀 assign:保存输出结果 [var…]:给要调用的函数传参
Include:内容可以被缓存 Insert:内容永不缓存 7、if elseif else 语法: {if} {elseif} {else} {/if}
8、ldelim、rdelim l ldelim {ldelim} :{ l rdelim {rdelim} :} 比如说,在页中就想输出的是{$a}原样 {ldelim}$a{rdelim} 9、literal {literal} …… {/literal} Literal 两个标记之间的内容不会被smarty所解析
10、php {php} …… {/php} 可以在这对php标记之中加php代码 这个功以在smarty3.0中被放到了smartyBC.class.php这个文件中,如果想使用,需要引用的是该文件 现在被放到smartyBc.class.php类的内建函数,以后有可能是不支持的,不建议大家使用
11、section,sectionelse {section name=名称 loop=循环数组(次数) start=开始(0) step=步阶(1) max=最大循环次数}
{sectionelse} loop指定的数组没有值时 {/sectionelse} {/section} 通过指定的数组进行循环,数组元素个数决定了循环次数 Name:命名 Loop:循环数组 (这个数组元素个数决定了决数) 以上两个属性是必添的 Start:开始索引 Step:步长 Max:最大的循环次数
l section的内置变量 {$smarty.section.name.index} :索引 {$smarty.section.name.index_prev} :上一次的索引 {$smarty.section.name.index_next} :下一次的索引 {$smarty.section.name.iteration } :第几次 {$smarty.section.name.first|last} :第1次和最后一次时为真 {$smarty.section.name.total} :共循环多少次 12、strip {strip} …… {/strip} 去掉左右空格
PHP之友评论