将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数组是否为索引数组的实现方法
Jun 13 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
CI框架给视图添加动态数据
Dec 01 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
PHP中FTP相关函数小结
Jul 15 PHP
PHP在线打包下载功能示例
Oct 15 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP实现八皇后算法
May 06 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP.vs.JAVA
2016/04/29 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
JavaScript中的对象与JSON
2015/07/03 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
使用python存储网页上的图片实例
2018/05/22 Python
python迭代dict的key和value的方法
2018/07/06 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
开放系统互连参考模型
2016/06/29 面试题
小学生暑假家长评语
2014/04/17 职场文书
道德演讲稿
2014/05/21 职场文书
项目经理任命书
2014/06/04 职场文书
法制演讲稿
2014/09/10 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书