将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 相关文章推荐
全文搜索和替换
Oct 09 PHP
Smarty模板快速入门
Jan 04 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
php print EOF实现方法
May 21 PHP
mysql 性能的检查和优化方法
Jun 21 PHP
php 文件缓存函数
Oct 08 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
php合并数组中相同元素的方法
Nov 13 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
PHP中常用的魔术方法
Apr 28 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php实现简单文件下载的方法
2015/01/30 PHP
深入理解PHP内核(一)
2015/11/10 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
EasyUI中在表单提交之前进行验证
2016/07/19 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python常用函数与用法示例
2019/07/02 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Python龙贝格法求积分实例
2020/02/29 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
公司外出活动方案
2014/08/14 职场文书
企业党建工作总结2015
2015/05/26 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
小爸爸观后感
2015/06/15 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS