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 相关文章推荐
用PHP和ACCESS写聊天室(五)
Oct 09 PHP
oracle资料库函式库
Oct 09 PHP
PHP伪造referer实例代码
Sep 20 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php中explode的负数limit用法分析
Feb 27 PHP
PHP MSSQL 分页实例
Apr 13 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
CI框架简单分页类用法示例
Jun 06 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
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python简单读取json文件功能示例
2017/11/30 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Django框架表单操作实例分析
2019/11/04 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
意外伤害赔偿协议书
2014/09/16 职场文书
社区端午节活动总结
2015/02/11 职场文书
个人专业技术总结
2015/03/05 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python