ThinkPHP v3.1开发框架新特性:内容解析输出

ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这个时候进行页面输出的时候,我们是无法进行模板文件读取的,3.1版本则针对这样的情况增加了内容解析输出的功能。
内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,3.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方法后,可以把模板放数据库中,对于模板的管理和更新也更加方便了。

时间: 2024-09-28 08:29:07

ThinkPHP v3.1开发框架新特性:内容解析输出的相关文章

ThinkPHP v3.1开发框架新特性:Ajax支持完善

3.1对AJAX的支持更加完善了,表现在: 判断AJAX方式改进 现在可以直接使用常量IS_AJAX来判断是否AJAX方式请求,用来取代之前的http://www.aliyun.com/zixun/aggregation/16339.html">Action类的isAjax方法,优势是可以在任何代码里面进行判断.而Action类的error和success方法内置就支持对AJAX自动判断支持. ajaxReturn方法完善 原来的ajaxReturn方法只能返回固定结构的数据,包括data

ThinkPHP v3.1开发框架新特性:多数据操作的完善

正常情况下,如果应用只是操作同一个数据库(或者分布式数据库)的话,你只需要在项目配置文件中定义数据库连接信息即可.这里说的多数据库操作一般指的是在一个应用中会操作不同的数据库(包括同类型的和不同类型的数据库),甚至包括动态切换多数据库的情况.早期版本的ThinkPHP切换数据库需要使用高级模型,现在可以更加轻松的解决了.新版对多数据的支持有下面几种方式,http://www.aliyun.com/zixun/aggregation/7155.html">开发人员可以根据实际情况选择合适的方

ThinkPHP v3.1开发框架新特性:查询条件预处理

3.0版本对数组方式的查询条件会进行安全过滤(由于3.0强制使用了字段类型检测,所以数组方式的查询条件会强制转换为字段的设定类型),但不支持字符串条件的安全过滤.3.1版本则增加了对条件字符串增加了预处理支持,让ORM的安全性更加得以保证.一.使用where方法 Model类的where方法支持字符串条件预处理,使用方式: $Model->where("id=%d&http://www.aliyun.com/zixun/aggregation/37954.html">

ThinkPHP v3.1开发框架新特性:页面压缩输出支持

现在大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,由于3.0版本没有内置页面压缩输出功能,所以一般来说,需要自己在入口文件中添加: ob_start('ob_gzhanhttp://www.aliyun.com/zixun/aggregation/16504.html">dler'); 但是由于服务器环境的不同,8630.html">有时候这个配置会和php.ini文件中的zlib压缩配置冲突.3.1新版则内置了页面压缩输出功能,不需要再手动添

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

以往版本的ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这种情况下进行页面输出的时候,我们是无法进行模板文件读取的,ThinkPHP3.1版本则针对这样的情况增加了内容解析输出的功能. 内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,ThinkPHP3.1版的View类和Action类也做了一些相应的改进. display方

探索Eclipse V3.1的新特性

这份教程演示了 Eclipse 的最新发行版 V3.1 中的许多新特性.如果正考虑 从以前的发行版升级到 V3.1,或者正考虑从其他集成开发环境转到 Eclipse, 那么您会发现本教程非常有用.如果想修改代码,以利用 Java 语言的 最新一代 Java 2 Standard Edition V1.5(为 Java 编程语言添加了许多强大 的结构和便利),本教程也会给您带来很大的帮助. 预备知识 了解本教程的学习目标和最佳学习方式. 关于本教 程 本教程演示了 Eclipse 的最新发行版 V

JDK5新特性:格式化输出

DK5.0允许象C语言那样直接用printf()方法来格式化输出,并且提供了许多参数来格式化输入,调用也很简单: System.out.format("Pi is approximately  %f", Math.Pi);    System.out.printf("Pi is approximately  %f", Math.Pi);  printf()和 format() 方法具有相同的功能. System.out 是 java.io.PrintStream的实

从DBA管理角度,看12c那些令人倾心的内存新特性

作者介绍 邹德裕,轻维软件首席数据库专家,DBAplus社群联合发起人,OraZ产品作者.10年以上运维管理经验,Oracle OCM,精通Oracle9i.10g和11g数据库技术及Linux Unix技术.对数据库系统架构具有深刻的理解,并在数据库诊断.故障排除.优化.架构设计等方面具有丰富的经验.   2013年6月26日,Oracle Database 12.1.0.1.0版本正式发布,随后在2014年7月发布了12.1.0.2.0,在2015年10月27日,Oracle在甲骨文全球大会

《深入理解C++11:C++ 11新特性解析与应用》——1.4 C++特性一览

1.4 C++特性一览 接下来,我们会一窥C++11中的各种特性,了解它们的来历.用途.特色等.可能这部分对于还没有开始阅读正文的读者来说有些困难.如果有机会,我们建议读者在读完全书后再回到这里,这也是全书最好的总结. 1.4.1 稳定性与兼容性之间的抉择 通常在语言设计中,不破坏现有的用户代码和增加新的能力,这二者是需要同时兼顾的.就像之前的C一样,如今C++在各种代码中.开源库中,或用户的硬盘中都拥有上亿行代码,那么当C++标准委员会要改变一个关键字的意义,或者发明一个新的关键字时,原有代码