将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 相关文章推荐
改进的IP计数器
Oct 09 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 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
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
cookie的secure属性详解
2015/04/08 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
vue图片上传组件使用详解
2019/12/23 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python查看模块安装位置的方法
2018/10/16 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python中字符串List按照长度排序
2019/07/01 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
大学生就业自荐信
2013/10/26 职场文书
优秀小学生家长评语
2014/01/30 职场文书
捐款倡议书范文
2014/02/02 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
财务部岗位职责
2015/02/03 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
文书工作总结(范文)
2019/07/11 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书