生活随笔
收集整理的这篇文章主要介绍了
Smarty中的内建函数(一)config_load、foreach
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1、capture
将模板输出的数据存放到一个变量里,不能嵌套,<{capture name="变量名"}><{/capture}>之间的内容
通过<{$smarty.capture.变量名}>来访问
2、config_load
从配置文件读取变量
[html] view plaincopy print?
<{* 必选file="指定文件" 可选section="配置文件中的区域",即配置文件中的“[]” 可选scope="local/parent/global" scope默认为local,即作用域为本模板 parent作用域为本模板以及调用本模板的父模板 global作用域为所有模板 可选global="true/false",是否全局可见,与scope="parent"相同 如果指定了global的同时又指定了scope,模板会忽略global,则以scope为准 *}> <{assign var="name" value="chuacom"}> <{$name}><br><br> <{config_load file="input.conf" section="UserEmail"}> name:<{#name#}><br><{*如果在本模板中已经存在此变量名,则会覆盖原有的变量值*}> email:<{#email#}><br><br> <{config_load file="input.conf" section="UserID"}> name:<{#name#}><br> id:<{#id#}><br><{*UserID区域在配置文件中为hidden,所以不能被加载和使用*}>
[plain] view plaincopy print?
# global 全局变量,在加载这个配置文件的时候,全局变量就会被加载,如果和局部变量同名,会优先使用局部变量 name = "chuangrain" age = 20 address = "四川" #域 ,用 “[ ]” 申明 [UserEmail] email = "chuang@admin.com" #隐藏部分 "[. ]" 申明,在模板中无法使用这部分的变量 [.UserID] id = '1111111111111111111'
结果:
chuacom
name:chuangrain
email:chuang@admin.com
name:chuangrain
id:
3、foreach
[php] view plaincopy print?
$arr = array( array( 'id' => '001', 'name' => 'zhao', ), array( 'id' => '002', 'name' => 'qian', ), ); $smarty->assign('arr',$arr); $smarty->display('input.html');
[html] view plaincopy print?
<{* from,必选,指定遍历的数组 item,必选,当前元素的变量名 key,可选,当前处理元素的键名 name,可选,循环的名称 foreachelse 在from变量没有值或不存在的时候执行 *}> <{foreach from=$arr item=arr1}> id:<{$arr1.id}> name:<{$arr1.name}><br> <{foreachelse}> none <{/foreach}> <br> <{foreach from=$arr item=arr1 key=k}> <{$k}>:<{$arr1.id}> <{$k}>:<{$arr1.name}><br> <{foreachelse}><{*如果$arr不存在或为空null时执行*}> none <{/foreach}> <br> <{foreach from=$arr item=arr1}> <{foreach from=$arr1 item=new_arr key=k}> <{$k}>:<{$new_arr}> <{/foreach}> <br> <{/foreach}>
运行结果:
4、include加载模板文件
[html] view plaincopy print?
<{* file,必选,加载文件的位置 assign,可选,把模板文件放在这个变量中,暂时不用输出被包含的文件 var...,可选,多选,变量名=值,将变量传递给被包含的模板,在被包含的模板中可以使用该变量 *}> <{include file="new.html" assign="article" title="SUSE" content="this is a test"}> <{$article}><{*此时才将包含的模板文件显示出来*}>
new.html
[html] view plaincopy print?
articleTitle:<{$title}><br> articleContent:<{$content}>
运行结果:
5、include_php 加载PHP文件
[html] view plaincopy print?
<{include_php file="include_php.php" assign="user"}><{*file必选,文件位置,assign可选,存放包含文件的内容*}> <{$user}>
include_php.php
[php] view plaincopy print?
$arr = array( 'id' => '001', 'name' => 'zhao', ); print_r($arr);
运行结果:
Array ( [id] => 001 [name] => zhao )
6、insert插入函数
插入一个同名的函数,不会缓存
[php] view plaincopy print?
<span style="font-family:Simsun;font-size:16px;">$smarty->display('new.html'); function insert_getTitle($arr = null){ print_r($arr); }</span>
new.html
[html] view plaincopy print?
<span style="font-family:Simsun;font-size:16px;"><{insert name="getTitle" assign="info" title="this is a demo"}> //调用"insert_"加name的值函数 //调用php程序中的insert_getTitle函数,并传递参数 //如果php程序中不存在,会去查找扩展中的insert.getTitle.php文件中smarty_insert_getTitle函数</span>
运行结果:Array ( [name] => getTitle [assign] => info [title] => this is a demo )
总结
以上是生活随笔为你收集整理的Smarty中的内建函数(一)config_load、foreach的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。