将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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
php session应用实例 登录验证
Mar 16 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
PHP多文件上传实例
Jul 09 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python Property属性的2种用法
2015/06/21 Python
利用python代码写的12306订票代码
2015/12/20 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
我的祖国演讲稿
2014/05/04 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
假期安全教育广播稿
2014/10/04 职场文书
大学四年个人总结
2015/03/03 职场文书
小学班级标语口号大全
2015/12/26 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python