ThinkPHP3.1新特性之内容解析输出详解

以往版本的ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这种情况下进行页面输出的时候,我们是无法进行模板文件读取的,ThinkPHP3.1版本则针对这样的情况增加了内容解析输出的功能。

内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,ThinkPHP3.1版的View类和Action类也做了一些相应的改进。

display方法用于模板文件渲染输出,show方法则用于模板内容渲染输出,并且show方法仍然支持内容解析功能,因此,我们可以在控制器中这样使用:

$this->assign('name','ThinkPHP');
$this->show('hello,{$name}!');

页面输出的结果是:

hello,ThinkPHP!

你也可以采用读取数据库的方式:

$content = M('Data')->where($map)->getField('content');
$this->show($content);

对于$content变量中的内容,可以和模板文件一样支持变量和标签库的解析,并且也可以支持模板布局功能。
show方法也可以指定输出编码和类型,例如:

$this->show($content,'utf-8','text/xml');

总之,有了show方法后,可以把模板放数据库中,对于模板的管理和更新也更加方便了。

(0)

相关推荐

  • 浅析ThinkPHP的模板输出功能

    ThinkPHP中的每一个xxxAction.class.php文件就代表着一个应用模块,这个Action中的每一个方法(function)代表着一个操作,操作可以分为有输出到模板的操作和只具执行不需要输出的操作. 打开Myapp/Lib/Action/IndexAction.class.php文件,我们可以看到里面的基础代码: class IndexAction extends Action{ public function index(){ } } 对此,需要指出一下几点: 1.在Think

  • ThinkPHP模板判断输出Defined标签用法详解

    ThinkPHP模板引擎的defined标签用于判断常量是否已经被定义. ThinkPHP的defined标签用来判断常量是否已经被定义,其功能相当于PHP中的defined()函数.defined标签用法如下: <present name="常量">要输出的内容</present> 先在模块操作(如:Index/display )里定义一个常量并输出模板: define("SITE_NAME", "我们"); $this

  • thinkphp模板输出技巧汇总

    本文实例总结了thinkphp模板输出技巧.分享给大家供大家参考.具体总结如下: 一.变量输出(重点) 1.标量输出: 复制代码 代码如下: {$name} 2.数组输出 复制代码 代码如下: {$name[0]}  {$name['k2']}  {$name.k1} 3.对象输出 复制代码 代码如下: {$name:k}//调用这个对象的成员属性K  {$name->k}//传统调用K方法 二.系统变量 复制代码 代码如下: {$Think.get.id}//在模板中调用系统变量,得到提供的i

  • ThinkPHP模板之变量输出、自定义函数与判断语句用法

    本文实例讲述了ThinkPHP模板之变量输出.自定义函数与判断语句用法.主要包括变量输出.自定义函数与判断语句三种用法.分享给大家供大家参考.具体分析如下: 模板操作变量输出: 快捷输出变量 复制代码 代码如下: {:function(-)} //执行方法并输出返回值 {~function} //执行方法不输出 {@var} //输出Session变量 {#var} //输出Cookie变量 {&var} //输出配置参数  {%var} //输出语言变量 {.var} //输出GET变量 {^

  • ThinkPHP模板范围判断输出In标签与Range标签用法详解

    ThinkPHP模板的in标签与range标签用于判断某个模板变量是否在某个范围之内. 1.in标签 ThinkPHP的in标签用于某个模板变量是否在某个范围之内,使用格式如下: <in name="变量名" value="值1,值2,...">要输出的内容</in> 使用时,在模块操作(如 Index/display )里设定变量并赋值给模板: $groupId = 1; $this->assign( "groupId&qu

  • ThinkPHP模板输出display用法分析

    本文实例分析了ThinkPHP模板输出display用法.分享给大家供大家参考.具体分析如下: 模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现,我们在操作方法的最后使用: 复制代码 代码如下: $this->display(); 就可以输出模板,根据前面的模板定义规则,因为系统会按照默认规则自动定位模板文件,所以通常display方法无需带任何参数即可输出对应的模板,这是模板输出的最简单的用法. 事情总有特例,或者根本不需要按模块进行分目录存放,不过dis

  • ThinkPHP模板判断输出Empty标签用法详解

    ThinkPHP模板的empty标签用于判断模板变量是否为空值. ThinkPHP模板empty标签用来判断模板变量是否为空值,其功能相当于PHP中的empty()函数行为.empty标签使用格式如下: <empty name="变量名">要输出的内容</empty> 具体用法如下例所示: <empty name="username">username 为空值</empty 该例子等同于: <?php if(empty

  • thinkphp模板用法和内容输出实例

    本文实例讲述了thinkphp模板用法和内容输出.分享给大家供大家参考.具体分析如下: 一.模板的用法 a.规则 模板文件夹下[TPL]    /与模块名同名的文件夹[Index]/ 与方法名同名的文件[index].html(.tpl) 模板文件夹下[TPL]/[分组文件夹/]    /与模块名同名的文件夹[Index]/与方法名同名的文件[index].html(.tpl) 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]   /与模块名同名的文件夹[Index]/与方法名同名的

  • ThinkPHP模板判断输出Present标签用法详解

    ThinkPHP模板的present标签用于判断模板变量是否已经赋值. ThinkPHP模板引擎的present标签用来判断模板变量是否已经赋值,其功能相当于PHP中的isset()函数行为,格式如下: <present name="变量名">要输出的内容</present> 用法举例如下: <present name="username">{$username} 你好!</present> 该例子等同于: if(is

  • ThinkPHP模版引擎之变量输出详解

    本文实例分析了ThinkPHP模版引擎中变量输出的用法.分享给大家供大家参考.具体分析如下: 我们已经知道了在Action中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢? 如果我们在Action中赋值了一个name模板变量: 复制代码 代码如下: $name = 'ThinkPHP'; $this->assign('name',$name); 使用内置的模板引擎输出变量,只需要在模版文件使用: {$name} 模板编译后的结果就是 复制代码 代码如下: <?ph

随机推荐