ThinkPHP 模板引擎使用详解

 更新时间:2017年05月07日 15:04:01   作者:Mather  
thinkphp系统支持原生的PHP模板,而且本身内置了一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模版引擎部分。

ThinkPHP 内置的模板引擎来定义模板文件,以及使用加载文件、模板布局和模板继承等高级功能。

每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的 PHP 文件。

引用自 http://www.kancloud.cn/manual/thinkphp5/118122

PHP

/*index/controller/example.php*/
 
use think\Controller;
 
class test extends Index {
 
  public function template (){
    $name = 'Jerry';
    $allName = [
      0 => "Jerry", 
      1 => "Tom"
    ];
 
    $this->assign('nameA',$name);
    $this->assign('allName',$allName);
 
    return $this->fetch('example');
  }
}

 
HTML

/*index/view/example.html*/
 
<span>{$nameA}</span>
 
{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}
 
 
Result

<br /><span>Jerry</span>
 
<p data-sub="0" data-index="1">Jerry</p>
 
<p data-sub="1" data-index="2">Tom</p>
 
 

这样 ThinkPHP 便完成了对页面的解析工作,其中涉及到 模板实例化、定位、赋值、渲染及标签的使用。

视图实例化

暂无

模板赋值

显然在在模板中直接使用 $name 是找不到该变量的。必须使用 assign 方法对模板赋值。在执行渲染输出函数前, assign 方法使 函数内部变量与模板变量建立起映射关系。

$this->assign('name',$name);
$this->assign('allName',$allName);
 

通过赋值之后,便可以在模板文件中使用 {$nameA} 来输出该变量了。

模板渲染

当数据已经准备好渲染到页面上,还需要指定 html 文件作为渲染模板,为当前函数执行 fetch 方法时候传入 example 参数。 

return $this->fetch('example');

模板标签

在模板文件中使用内置标签可以帮助我们在模板中循环、判断变量。它以一对花括号 {tag} {/tag} 作为开标签和闭标签。 { 与 } 之间必须紧跟标签属性或值,存在 空格 和 换行 都不能在渲染时被解析。

volist 标签就是内置标签中的其中一个,通常用来循环某个数组变量。

{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}

allName 是通过模板赋值的变量 ,现在可以在模板上直接使用了,显然它是一个数组, volist 标签对它做了循环操作。

volist 标签常用的一些属性:

prop name id
key 数组名 当前元素
value allName vo

隐藏在 volist 中的有几个内部变量 {$key} {$i} ,分别代表了 数组下标 和 循环次数 。

内置标签

与 volist 一样好用的内置标签还有很多:

<notempty name=""></notempty> //判断数据是否不为空 不为空则执行

相关文章

  • php导出excel格式数据问题

    php导出excel格式数据问题

    本篇文章主要是对php导出excel格式数据的问题进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验

    web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验

    通过上一篇,获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR) ,我们已经意 识到直接从http_x_forwarded_for中读取用户IP,跟我们直接从一个get,post值中读取其实没有两样。web参数检测里面一个基本原则:“一切输入都是有害的”,因此,只要是输入我们就需要进行过滤
    2013-06-06
  • php阿拉伯数字转中文人民币大写

    php阿拉伯数字转中文人民币大写

    这篇文章主要介绍了php阿拉伯数字转中文大写金额,分享了两种实现方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • PHP微框架Dispatch简介

    PHP微框架Dispatch简介

    Dispatch是一个PHP小框架,可以合并Dispatch和其他框架,开发出相当强大并且轻量级的程序,需要的朋友可以参考下
    2014-06-06
  • php htmlentities和htmlspecialchars 的区别

    php htmlentities和htmlspecialchars 的区别

    很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。
    2008-08-08
  • 10个实用的PHP代码片段

    10个实用的PHP代码片段

    这些代码在Web开发经常会用到,比较实用的代码,提高开发效率。
    2011-09-09
  • php array_chunk()函数用法与注意事项

    php array_chunk()函数用法与注意事项

    这篇文章主要介绍了php array_chunk()函数用法与注意事项,结合实例形式分析了php数组分割函数array_chunk()相关功能、用法及操作注意事项,需要的朋友可以参考下
    2019-07-07
  • 详解PHP Swoole与TCP三次握手

    详解PHP Swoole与TCP三次握手

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP在IP报文的协议号是6。TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。本文将详细介绍PHP Swoole与TCP三次握手。
    2021-05-05
  • PHP 字符串正则替换函数preg_replace使用说明

    PHP 字符串正则替换函数preg_replace使用说明

    PHP 字符串正则替换函数preg_replace使用说明,需要的朋友可以参考下。
    2011-07-07
  • PHP获取当前所在目录位置的方法

    PHP获取当前所在目录位置的方法

    这篇文章主要介绍了PHP获取当前所在目录位置的方法,涉及getcwd(0函数的用法以及相关的PHP目录操作函数的使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11

最新评论