将PHP程序中返回的JSON格式数据用gzip压缩输出的方法


Posted in PHP onMarch 03, 2016

1.使用压缩与不使用压缩的HTTP输出比较

将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

2.开启gzip

利用apache mod_deflate module 开启gzip
开启方法:

sudo a2enmod deflate
sudo /etc/init.d/apache2 restart

关闭方法:

sudo a2dismod deflate
sudo /etc/init.d/apache2 restart

3.设置需要gzip压缩输出的类型

json的输出类型是application/json,所以可以这样设置
在httpd.conf的<Directory></Directory>中加入

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
</IfModule>
<?php
$data = array(
  array('name'=>'one','value'=>1),
  array('name'=>'two','value'=>2),
  array('name'=>'three','value'=>3),
  array('name'=>'four','value'=>4),
  array('name'=>'five','value'=>5),
  array('name'=>'six','value'=>6),
  array('name'=>'seven','value'=>7),
  array('name'=>'eight','value'=>8),
  array('name'=>'nine','value'=>9),
  array('name'=>'ten','value'=>10),
);

header('content-type:application/json');
echo json_encode($data);
?>

设置gzip前输出:

将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

设置gzip后输出:

将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

4.单个json使用gzip压缩输出

设置AddOutputFilterByType DEFLATE application/json后,所有json格式的数据输出都将使用gzip压缩输出。
如果只想某一个json使用gzip压缩输出,其他不需要,可以使用ob_start();方法来实现。

首先不需要设置AddOutputFilterByType,然后在代码最开始位置加入ob_start('ob_gzhandler');

<?php
ob_start('ob_gzhandler');

$data = array(
  array('name'=>'one','value'=>1),
  array('name'=>'two','value'=>2),
  array('name'=>'three','value'=>3),
  array('name'=>'four','value'=>4),
  array('name'=>'five','value'=>5),
  array('name'=>'six','value'=>6),
  array('name'=>'seven','value'=>7),
  array('name'=>'eight','value'=>8),
  array('name'=>'nine','value'=>9),
  array('name'=>'ten','value'=>10),
);

header('content-type:application/json');
echo json_encode($data);
?>
PHP 相关文章推荐
PHP.MVC的模板标签系统(四)
Sep 05 PHP
一个php作的文本留言本的例子(五)
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
php中hashtable实现示例分享
Feb 13 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
PHP简单实现DES加密解密的方法
Jul 12 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 #PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 #PHP
CodeIgniter表单验证方法实例详解
Mar 03 #PHP
PHP6新特性分析
Mar 03 #PHP
php轻松实现文件上传功能
Mar 03 #PHP
php编程每天必学之验证码
Mar 03 #PHP
简单介绍PHP非阻塞模式
Mar 03 #PHP
You might like
Terran兵种介绍
2020/03/14 星际争霸
由php的call_user_func传reference引发的思考
2010/07/23 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
Javascript倒计时代码
2010/08/12 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
python定时执行指定函数的方法
2015/05/27 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python使用mysql的两种使用方式
2018/03/07 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
2014年网络管理员工作总结
2014/12/01 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书