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


Posted in PHP onJune 19, 2014

以往版本的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方法后,可以把模板放数据库中,对于模板的管理和更新也更加方便了。

PHP 相关文章推荐
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 #PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 #PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 #PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 #PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 #PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 #PHP
ThinkPHP的Widget扩展实例
Jun 19 #PHP
You might like
php getsiteurl()函数
2009/09/05 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
PHP常用数组函数介绍
2014/07/28 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
如何打开php的gd2库
2017/02/09 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
银行求职推荐信范文
2013/11/30 职场文书
法人授权委托书
2014/09/16 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
浅谈python数据类型及其操作
2021/05/25 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
MySQL 条件查询的常用操作
2022/04/28 MySQL