ThinkPHP3.1新特性之对页面压缩输出的支持


Posted in PHP onJune 19, 2014

目前大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,但是由于3.0及以前的版本都没有内置页面压缩输出功能,所以一般来说,开发人员需要自己在入口文件中添加:

ob_start('ob_gzhandler');

但是由于服务器环境的不同,有时候这个配置会和php.ini文件中的zlib压缩配置冲突。而ThinkPHP3.1版则内置了页面压缩输出的功能,不再需要再手动添加ob_gzhandler代码,增加OUTPUT_ENCODE配置参数,并支持检测zlib.output_compression。

框架默认会进行页面压缩输出,并且会自动检测zlib.output_compression配置,如果php.ini里面zlib.output_compression是开启状态,则仍然以服务器环境的页面压缩方式进行页面压缩。

相关代码只有一行:

if(!ini_get('zlib.output_compression') && C('OUTPUT_ENCODE')) ob_start('ob_gzhandler');

在个别特殊的环境下面,如果出现类似下面的错误提示:

output_handler "ob_gzhandler" conflicts with "zlib.output_compression"

一般是由于你的服务器配置了其他的压缩方式导致冲突,这个时候你可以手动关闭OUTPUT_ENCODE,即:

'OUTPUT_ENCODE'=>false

就可以解决问题。

PHP 相关文章推荐
如何将一个表单同时提交到两个地方处理
Oct 09 PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
生成卡号php代码
Apr 09 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 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
ThinkPHP3.1的Widget新用法
Jun 19 #PHP
You might like
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
js实现抽奖效果
2017/03/27 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python使用多进程的实例详解
2018/09/19 Python
Pytorch to(device)用法
2020/01/08 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
shallow copy和deep copy的区别
2016/05/09 面试题
几个Linux面试题笔试题
2012/12/01 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
一份报关员的职业规划范文
2014/01/08 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
物流业务员岗位职责
2015/04/03 职场文书
小学校长开学致辞
2015/07/29 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书