1、capture

将模板输出的数据存放到一个变量里,不能嵌套,<{capture name="变量名"}><{/capture}>之间的内容

通过<{$smarty.capture.变量名}>来访问

2、config_load

从配置文件读取变量

[html] view plaincopy print?
  1. <{*
  2. 必选file="指定文件"
  3. 可选section="配置文件中的区域",即配置文件中的“[]”
  4. 可选scope="local/parent/global"
  5. scope默认为local,即作用域为本模板
  6. parent作用域为本模板以及调用本模板的父模板
  7. global作用域为所有模板
  8. 可选global="true/false",是否全局可见,与scope="parent"相同
  9. 如果指定了global的同时又指定了scope,模板会忽略global,则以scope为准
  10. *}>
  11. <{assign var="name" value="chuacom"}>
  12. <{$name}><br><br>
  13. <{config_load file="input.conf" section="UserEmail"}>
  14. name:<{#name#}><br><{*如果在本模板中已经存在此变量名,则会覆盖原有的变量值*}>
  15. email:<{#email#}><br><br>
  16. <{config_load file="input.conf" section="UserID"}>
  17. name:<{#name#}><br>
  18. id:<{#id#}><br><{*UserID区域在配置文件中为hidden,所以不能被加载和使用*}>
[plain] view plaincopy print?
  1. # global 全局变量,在加载这个配置文件的时候,全局变量就会被加载,如果和局部变量同名,会优先使用局部变量
  2. name = "chuangrain"
  3. age = 20
  4. address = "四川"
  5. #域 ,用 “[ ]” 申明
  6. [UserEmail]
  7. email = "chuang@admin.com"
  8. #隐藏部分 "[. ]" 申明,在模板中无法使用这部分的变量
  9. [.UserID]
  10. id = '1111111111111111111'

结果:

chuacom

name:chuangrain

email:chuang@admin.com

name:chuangrain

id:

3、foreach

[php] view plaincopy print?
  1. $arr = array(
  2. array(
  3. 'id' => '001',
  4. 'name' => 'zhao',
  5. ),
  6. array(
  7. 'id' => '002',
  8. 'name' => 'qian',
  9. ),
  10. );
  11. $smarty->assign('arr',$arr);
  12. $smarty->display('input.html');
[html] view plaincopy print?
  1. <{*
  2. from,必选,指定遍历的数组
  3. item,必选,当前元素的变量名
  4. key,可选,当前处理元素的键名
  5. name,可选,循环的名称
  6. foreachelse 在from变量没有值或不存在的时候执行
  7. *}>
  8. <{foreach from=$arr item=arr1}>
  9. id:<{$arr1.id}>
  10. name:<{$arr1.name}><br>
  11. <{foreachelse}>
  12. none
  13. <{/foreach}>
  14. <br>
  15. <{foreach from=$arr item=arr1 key=k}>
  16. <{$k}>:<{$arr1.id}>
  17. <{$k}>:<{$arr1.name}><br>
  18. <{foreachelse}><{*如果$arr不存在或为空null时执行*}>
  19. none
  20. <{/foreach}>
  21. <br>
  22. <{foreach from=$arr item=arr1}>
  23. <{foreach from=$arr1 item=new_arr key=k}>
  24. <{$k}>:<{$new_arr}>
  25. <{/foreach}>
  26. <br>
  27. <{/foreach}>

运行结果:

4、include加载模板文件

[html] view plaincopy print?
  1. <{*
  2. file,必选,加载文件的位置
  3. assign,可选,把模板文件放在这个变量中,暂时不用输出被包含的文件
  4. var...,可选,多选,变量名=值,将变量传递给被包含的模板,在被包含的模板中可以使用该变量
  5. *}>
  6. <{include file="new.html" assign="article" title="SUSE" content="this is a test"}>
  7. <{$article}><{*此时才将包含的模板文件显示出来*}>

new.html

[html] view plaincopy print?
  1. articleTitle:<{$title}><br>
  2. articleContent:<{$content}>

运行结果:

5、include_php 加载PHP文件

[html] view plaincopy print?
  1. <{include_php file="include_php.php" assign="user"}><{*file必选,文件位置,assign可选,存放包含文件的内容*}>
  2. <{$user}>

include_php.php

[php] view plaincopy print?
  1. $arr = array(
  2. 'id' => '001',
  3. 'name' => 'zhao',
  4. );
  5. print_r($arr);

运行结果: Array ( [id] => 001 [name] => zhao )

6、insert插入函数

插入一个同名的函数,不会缓存

[php] view plaincopy print?
  1. <span style="font-family:Simsun;font-size:16px;">$smarty->display('new.html');
  2. function insert_getTitle($arr = null){    //函数名为"insert_"加上insert中name相同的函数名
  3. print_r($arr);    //函数体
  4. }</span>

new.html

[html] view plaincopy print?
  1. <span style="font-family:Simsun;font-size:16px;"><{insert name="getTitle" assign="info" title="this is a demo"}>
  2. //调用"insert_"加name的值函数
  3. //调用php程序中的insert_getTitle函数,并传递参数
  4. //如果php程序中不存在,会去查找扩展中的insert.getTitle.php文件中smarty_insert_getTitle函数</span>

运行结果:Array ( [name] => getTitle [assign] => info [title] => this is a demo )

Smarty中的内建函数(一)config_load、foreach相关推荐

  1. smarty中的内建函数(二)if、section

    接smarty中的内建函数(一) 7.if,elseif,else 主要根据条件来决定处理的方式 [php] view plaincopy print? $role = '1'; $smarty-&g ...

  2. smarty手册-smarty中foreach循环语句详解

    原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...

  3. Smarty中的变量

    Smarty中变量分为三类 1.PHP分配的变量 index.php [php] view plaincopy print? require('./include.php');   //加载Smart ...

  4. smarty中使用php函数,在smarty模板中使用PHP函数的方法

    在smarty模板中使用PHP函数的方法 发布于 2014-11-23 22:57:51 | 174 次阅读 | 评论: 0 | 来源: 网友投递 Smarty模板引擎Smarty是一个使用PHP写出 ...

  5. php in循环与for循环,详谈js中标准for循环与foreach(for in)的区别

    js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i alert(array[i]) } //foreach循环 for(var i in ar ...

  6. Smarty 中的 if 语句条件修饰词

    Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎. if 必须于 /if 成对出现. 可以使用 else 和 elseif 子句. 可以使用以下条 ...

  7. smarty中如何统计数组的个数?

    在做web前端中,很多人会遇到在smarty中如何统计数组的个数,其实很简单 比如数组$array 你只需要用{$array|@count}就可以获取. 转载于:https://www.cnblogs ...

  8. JS中map()与forEach()的用法

    JS中map()与forEach()的用法 相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3. ...

  9. Smarty中的ob_start问题

    近日升级php 4.3.10 到 4.4.6,遭遇到一个奇怪的问题.描述如下: Linux Redhat AS4, Apache 1.3.37, PHP 4.4.6, Smarty 2.6.3 环境中 ...

最新文章

  1. 正交试验优化荔枝乳酸菌饮料的配方
  2. mysql 不同连接的事务 会嵌套_MySQL——事务
  3. 查看磁盤使用情况linux,在Linux系统下安装Filelight来查看磁盘使用情况
  4. javascript正则表达式小结
  5. 参数检验——当总体分布已知(如总体为正态分布),根据样本数据对总体分布的统计参数进行推断 非参数检验——利用样本数据对总体分布形态等进行推断的方法。...
  6. python语言百度百科-Python 语言下数据驱动DDT的应用
  7. asp从后台调出的公式怎么参与运算_吴望一《流体力学》第一章中微分运算公式的初等证明...
  8. javascript变量中基本类型和引用类型的详解解读
  9. idea打包meven镜像_Intelij IDEA中修改maven为国内镜像
  10. 经典永流传,华为云媒体 AI 让老电影焕发新生
  11. 业余无线电通信_业余无线电UV段攻略
  12. Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)
  13. IntelliJ IDEA 初始化项目时No Java SDK Found
  14. 4.设计包(design package)
  15. 子框架页面链接改变(js方法)
  16. Ubuntu生成so共享库的方法
  17. Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
  18. pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架
  19. php去掉二维数组中某key的值
  20. 做个火影般的架构师,阿里内网疯狂传阅的“M8级”分布式架构笔记

热门文章

  1. 【数字信号处理】相关函数与线性卷积关系 ( 卷积概念 | 相关函数概念 | 相关函数与线性卷积对比 | x(-m) 共轭 与 y(m) 的卷积就是两个信号 位移 m 的相关函数 )
  2. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
  3. 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
  4. 【APUE】文件 I/O 操作
  5. 【Android 应用开发】 Fragment 详解
  6. 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
  7. 使用Mybatis Generator自动生成代码
  8. 前方高能 | 容器化应用操作原来可以这样简单
  9. MyBatis传入多个参数的问题
  10. Android.mk文件编写