找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1004|回复: 0
打印 上一主题 下一主题

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

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:37:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了PHP模板引擎Smarty内建函数。分享给大家供大家参考,具体如下:
Smarty 的内建函数:Smarty自带一些内建函数,内建函数是模板语言的一部分,用户不能创建名称和内建函数一样的自定义函数,也不能修改内建函数。
下面对 Smarty 中的内建函数进行说明,并加以实例:
实例中使用到的 Smarty 模板引擎初始化文件 init.inc.php 和主文件 index.php
init.inc.php
template_dir = ROOT_PATH.'/tpl/'; //重新指定模板目录
  $_tpl->compile_dir = ROOT_PATH.'./com/'; //重新指定编译目录
  $_tpl->left_delimiter = 'right_delimiter = '}>'; //重新指定右定界符
?>
index.php
display('index.tpl'); //引入模板
?>
1、capture

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

   
   
     这里是 capture 函数里面的内容,默认是不显示的。
   
   
   

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
{include file="header.tpl"}
{* body of template goes here *}
{include file="footer.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=
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
ldelim 和 rdelim

  funcname 是 Smarty 中的一个函数。
   是 Smarty 中的一个函数。 -->

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

  
  
  

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

  
    echo date("Y-m-d H:i:s");
  
  

8、strip
Web 开发者多次遇到空格和回车影响HTML输出的情形,为了得到特定的结果,因此你不得不在模板里运行所有的标签. 通常在难以理解或难以处理的模板中遇到此问题。Smarty 在显示前将除区任何位于 {strip}{/strip} 标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的空格导致问题。
好了, Smarty 模板引擎中的内建函数先总结这么多,关于内建函数中两个最重要的函数(foreach,foreachelse、section,sectionelse)的使用,可参考前面一篇《PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
更多关于PHP相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • smarty+adodb+部分自定义类的php开发模式
  • 在smarty中调用php内置函数的方法
  • smarty自定义函数htmlcheckboxes用法实例
  • smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
  • smarty模板引擎中内建函数if、elseif和else的使用方法
  • smarty模板引擎中自定义函数的方法
  • smarty内部日期函数html_select_date()用法实例分析
  • Smarty使用自定义资源的方法
  • PHP模板引擎Smarty自定义变量调解器用法
  • PHP模板引擎Smarty内建函数section,sectionelse用法详解
  • smarty自定义函数用法示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端