将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 COOKIE设置为浏览器进程
Jun 21 PHP
PHP 替换模板变量实现步骤
Aug 24 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP实现递归复制整个文件夹的类实例
Aug 03 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
smarty简单应用实例
Nov 03 PHP
php可变长参数处理函数详解
Feb 22 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP PDOStatement::execute讲解
Jan 31 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php身份证号码检查类实例
2015/06/18 PHP
javascript 函数调用规则
2009/08/26 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
web.py在模板中输出美元符号的方法
2014/08/26 Python
python解析xml文件操作实例
2014/10/05 Python
简单的Python抓taobao图片爬虫
2014/10/26 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
机械专业应届生求职信
2013/12/12 职场文书
2014年售票员工作总结
2014/11/19 职场文书
离婚起诉书范本
2015/05/18 职场文书
校运会通讯稿
2015/07/18 职场文书
清明扫墓感想
2015/08/11 职场文书
2016年离婚协议书范文
2016/03/18 职场文书