将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预定义常量
Dec 25 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
Python多进程机制实例详解
2015/07/02 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python中GIL的使用详解
2018/10/03 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
python能做什么 python的含义
2019/10/12 Python
如何用Python 加密文件
2020/09/10 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
学校门卫岗位职责
2014/03/16 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年医生工作总结
2014/11/21 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
《实心球》教学反思
2016/02/23 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
详解Laravel框架的依赖注入功能
2021/05/27 PHP
java中如何截取字符串最后一位
2022/07/07 Java/Android