`
zhangziyangup
  • 浏览: 1077983 次
文章分类
社区版块
存档分类
最新评论

PHP 中使用 Smarty 之六:Smarty 内建函数

 
阅读更多

Smarty 的内建函数:Smarty自带一些内建函数,内建函数是模板语言的一部分,用户不能创建名称和内建函数一样的自定义函数,也不能修改内建函数。

下面对 Smarty 中的内建函数进行说明,并加以实例:

实例中使用到的 Smarty 模板引擎初始化文件 init.inc.php 和主文件 index.php

init.inc.php


index.php


1、capture

属性 类型 是否必须 缺省值 描述
name string no default 数据采集区域名称
assign string No n/a 数据采集区域在哪分配给变量name[待考]

capture函数的作用是捕获模板输出的数据并将其存储到一个变量里,而不是把它们输出到页面,任何在 {capture name="foo"}和{/capture}之间的数据将被存储到变量$foo中,该变量由name属性指定,在模板中通过 $smarty.capture.foo 访问该变量。如果没有指定 name 属性,函数默认将使用 "default" 作为参数,{capture}必须成对出现,即以{/capture}作为结尾,该函数不能嵌套使用。请看下面的实例模板文件。

/tpl/index.tpl


2、config_load

属性 类型 是否必须 缺省值 描述
file string Yes n/a 待包含的配置文件的名称
section string No n/a 配置文件中待加载部分的名称
scope string no local 加载数据的作用域,取值必须为local, parent 或 global. local 说明该变量的作用域为当前模板. parent 说明该变量的作用域为当前模板和当前模板的父模板(调用当前模板的模板). global 说明该变量的作用域为所有模板.
global boolean No No 说明加载的变量是否全局可见,等同于 scope=parent. 注意: 当指定了 scope 属性时,可以设置该属性,但模板忽略该属性值而以 scope 属性为准。

config_load 函数用于从配置文件中加载变量,关于 config_load 函数的使用,请看我的《PHP 中使用 Smarty 之二:配置文件在模板变量中的使用。

3、include

属性 类型 是否必须 缺省值 描述
file string Yes n/a 待包含的模板文件名
assign string No n/a 该属性指定一个变量保存待包含模板的输出
[var ...] [var type] No n/a 传递给待包含模板的本地参数,只在待包含模板中有效
include 函数用于在当前模板中包含其它模板, 当前模板中的变量在被包含的模板中可用. 必须指定 file 属性,该属性指明模板资源的位置。如果设置了 assign 属性,该属性对应的变量名用于保存待包含模板的输出,这样待包含模板的输出就不会直接显示了。请看下面的示例:

/tpl/index.tpl


4、if,elseif,else

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

可以使用以下条件修饰词:eq、ne、neq、gt、lt、lte、le、gte、ge、is even、is odd、is not even、is not odd、not、mod、div by、even by、odd by、==、!=、>、<、<=、>=. 使用这些修饰词时必须和变量或常量用空格格开。

下面对这些修饰符表示的意思进行说明:

条件修饰符 作用描述
eq ==
ne !=
neq !=
gt >
lt <
lte <=
le <=
gte >=
ge >=
is even 是否偶数
is odd 是否奇数
is not even 是否不是偶数
is not odd 是否不是奇数
not !=
mod 求模
div by 是否能被整除
even by 商是否是偶数
odd by 商是否是奇数
&&
||
() 括号改变优先级


5、ldelim 和 rdelim
用于输出分隔符,也就是大括号 "{" 和 "}". 模板引擎总是尝试解释大括号内的内容,因此如果需要输出大括号,请使用此方法。请看下面的示例:

/tpl/index.tpl


6、literal

literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示,其实按照我的所有例子中的标签风格(因为在 init.inc.php 初始化文件中已经重新设置了左定界符和右定界符),而不是 Smarty 的默认风格,基本上不会产生这种情况。关于该函数的使用,请看下面的示例

/tpl/index.tpl


7、php

php 标签允许在模板中直接嵌入 php 脚本,此标签会把标签内部的内容当成 PHP 脚本进行解析执行。请看下面的示例

/tpl/index.tpl


8、strip

Web 开发者多次遇到空格和回车影响HTML输出的情形,为了得到特定的结果,因此你不得不在模板里运行所有的标签. 通常在难以理解或难以处理的模板中遇到此问题。Smarty 在显示前将除区任何位于 {strip}{/strip} 标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的空格导致问题。


好了, Smarty 模板引擎中的内建函数先总结这么多,关于内建函数中两个最重要的函数(foreach,foreachelse、section,sectionelse)的使用,将在下面的进行整理。


分享到:
评论

相关推荐

    PHP100视频教程 29:PHP模板引擎Smarty内置函数

    在实际操作中与section 功能一样,但foreach在Smarty一般用来处理一维数组。2、include 多功能使用3、IF条件语句的使用4、literal strip 文本的处理技巧 literal 数据将被当作文本处理,此时模板将忽略其内部的所有...

    PHP100视频教程29:PHP模板引擎Smarty内置函数.rar

    PHP100视频教程29:PHP模板引擎Smarty内置函数.rar

    (第29讲) PHP模板引擎Smarty内置函数

    1、foreach 数组的处理 2、include 多功能使用 3、IF条件语句的使用 4、literal strip 文本的处理技巧

    smarty模板中文手册

    3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来...

    PHP100视频教程 29:PHP模板引擎Smarty内置函数.rar

    与我们在PHP中的foreach用法类似,同样是用来遍历数组。在实际操作中与 section 功能一样,但foreach在Smarty一般用来处理一维数组。 2、include 多功能使用 3、IF条件语句的使用 4、literal strip 文本的处理...

    Smarty中文手册 chm版

    7. Built-in Functions [内建函数] capture config_load foreach,foreachelse include include_php insert if,elseif,else ldelim,rdelim literal php section,sectionelse strip 8. Custom Functions ...

    PHP模板引擎Smarty内建函数详解

    主要介绍了PHP模板引擎Smarty内建函数用法,结合实例形式分析了smarty中常见的内建函数功能,定义与使用方法,需要的朋友可以参考下

    PHP100视频教程 28:PHP模板引擎Smarty的变量操作符

    (跟我PHP中常用的PHP内部函数类似)2、如何使用Smarty变量操作符语法中使用"|"应用变量操作符,多个参数用":" 分隔开来3、介绍常用的20个变量符capitalize [首字母大写] count_characters [计算字符数] cat [连接...

    php,javascript,smarty,ajax手册

    php学习必备,php函数手册,javascript手册,Smarty完全中文手册,Ajax中文手册

    在smarty模板中使用PHP函数的方法

    在smarty模板中如果要在显示的资料使用php函数时,如果是只有一个参数的函数比如说去空白的trim会写成

    在smarty中调用php内置函数的方法

    在smarty中调用php的内置函数,相信很多人都不是很很了解smarty的一个重要功能,就是能在smarty模板里面调用php的内置函数

    smarty安装与入门

    smarty安装及初级使用 在PHP的世界里已经出现了各式各样的模板类,但就功能和速度来说Smarty还是一直处于领先地位,因为Smarty的功能相对强大,所以使用起来比其他一些模板类稍显复杂了一点。现在就用30分钟让您...

    PHP100视频教程 28:PHP模板引擎Smarty的变量操作符.rar

    php模板引擎smarty内置的一些操作函数,我们称之为变量操作符,变量操作符 可用于操作变量,自定义函数和字符。(跟我PHP中常用的PHP内部函数类似) 2、如何使用Smarty变量操作符 语法中使用"|"应用变量操作符,多...

    smarty3.x完全中文手册.7z

    7. Built-in Functions [内建函数] 8. Custom Functions [自定义函数] 9. Config Files [配置文件] 10. Debugging Console [调试控制台] 程序员篇 Table of Contents [内容列表] 11. Constants [常量] 12. ...

    达内学习笔记----SMARTY笔记.docx

    本文档是关于SMARTY的笔记,知识点归纳的很全,是在听了达内的老师和兄弟连的老师之后才整理...十一、Smarty内建函数 十三、运用SMARTY自动创建表单标签 目录是按学习进度自己整理的,可能不很规范,但是内容绝对经典

    《php开发典型模块大全》读书笔记和调试源代码 第四章smarty (张迅雷闪击PHP系列)

    内置函数: config_load foreach 使用foreach语句循环输出数组。 {% foreach key=key item=item from=$infobook %} {% $key %} =&gt; {% $item %} {% /foreach %} include {% include file='08/table.tpl' ...

    smarty手册.chm

    7. Built-in Functions [内建函数] capture config_load foreach,foreachelse include include_php insert if,elseif,else ldelim,rdelim literal php section,sectionelse strip 8. Custom Functions ...

    ppi-smarty-module:适用于PPI2的Smarty3模板引擎模块

    PPI Smarty模块用于模板引擎模块。聪明的 Smarty是PHP的模板引擎,有助于将表示形式(HTML / CSS)与应用程序逻辑分离。 这意味着PHP代码是应用程序逻辑,并且与表示分离。 Smarty的一些功能: 这是非常快的。 由于...

    PHP Smarty 模板引擎手册 CHM.rar

    Smarty 模板引擎教程 chm格式,内容主要有基本语法、变量、组合修改器、内建函数、自定义函数、配置文件、控制台调试、缓存、插件扩展、使用技巧和经验等,比较详细的一个中文手册,如上图示。

    php smarty函数扩展

    扩展函数放到 */Smarty/libs/plugins目录下,文件命名格式 modifier.xxxx.php,函数名格式function smarty_modifier_xxxx

Global site tag (gtag.js) - Google Analytics