相关文章推荐
酒量大的奔马  ·  Android ...·  2 周前    · 
一身肌肉的眼镜  ·  okhttp ...·  2 周前    · 
个性的拐杖  ·  Android ...·  2 周前    · 
爱搭讪的木瓜  ·  未捕获ReferenceError: ...·  1 年前    · 

PHP如何将返回的JSON数据用gzip压缩输出?本文主要介绍了将PHP中返回的JSON格式数据用gzip压缩输出的方法,文中示例环境为Linux系统与Apache服务器,需要的朋友可以参考下。希望对大家有所帮助。

1.使用压缩与不使用压缩的HTTP输出比较

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的中加入

AddOutputFilterByType DEFLATE application/json

$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前输出:

设置gzip后输出:

4.单个json使用gzip压缩输出

设置AddOutputFilterByType DEFLATE application/json后,所有json格式的数据输出都将使用gzip压缩输出。

如果只想某一个json使用gzip压缩输出,其他不需要,可以使用ob_start();方法来实现。

首先不需要设置AddOutputFilterByType,然后在代码最开始位置加入ob_start('ob_gzhandler');

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 数组遍历foreach语法结构及实例

PHP 数组排序方法总结

php和js中json传递的简析

PHP如何将返回的JSON数据用gzip压缩输出?本文主要介绍了将PHP中返回的JSON格式数据用gzip压缩输出的方法,文中示例环境为Linux系统与Apache服务器,需要的朋友可以参考下。希望对大家有所帮助。1.使用压缩与不使用压缩的HTTP输出比较2.开启gzip利用apache mod_deflate module 开启gzip开启方法:sudo a2enmod deflatesudo ...
点击关注公众号,Java干货及时送达推荐阅读:学习 Spring Cloud 微服务的最佳姿势!Spring Cloud 2022 正式发布!1. 业务背景是这样的,业务背景是公司的内部系统有一个广告保存接口,需要 ADX 那边将投放的广告 数据 进行保存供后续使用。广告 数据 大概长这样:{ "adName":"", "adTag":"" }adName:广告名字adTag:广告渲染的 ...
c# Json 压缩 和格式化 Json 压缩 和格式化 Json 压缩 Json 格式化 Json 压缩 和格式化 Json 作为常用 数据 文件,在 传输 过程前或 传输 后要进行 压缩 或者格式化,以方便自己使用。下面是使用C#完成的格式化和 压缩 代码。 Json 压缩 /// <summary> /// 压缩 Json 字符串 /// </summary> /// <param name=" json ">需要 压缩 json 串</param&gt
我在日常开发中遇到,由于后端 返回 JSON 数据 较大,导致前端响应的较慢,于是考虑通过后端 压缩 ,前端解压的方式来进行优化: 后端 压缩 工具类: package com.stt.common.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip. GZIP InputStream; import java.util
最近公司开发一款app(原生安卓的),由于客户需要在app上展示3D效果图,但是客户的源文件是setp格式的,而且文件很大。鉴于文件解析等一系列考虑,最终打算使用服务器将源文件解析成 json 或者obj格式,然后 传输 到app上打开预览,最终选择的是使用python将step解析成 json ,本地测试一切正常,上线发现问题来了,解析出来的 json 文件比源文件非常大,通常都是好几十MB,所以就考虑 压缩 传输 ,然后在客户端进行解压渲染。 各种 压缩 方式测试 7z+zip或者7z+7z 压缩 方案:采用7z 压缩 后,再使
无论使用何种编程语言, json 格式的 数据 已被广泛应用,不论是 数据 传输 还是存储,在很多应用场景下,你可能想进一步地 压缩 JSON 字符串的长度,以提升 传输 效率,如果你使用的是nosql 数据 库,你可能想进一步的 压缩 json 字符串的长度来节省你的存储空间,接下来,我将介绍一下目前最常用的 json 数据 压缩 技术(C JSON 和HPack)的实现。 一、C JSON C JSON 压缩 算法, 主要是将资料抽离成...
json 是一种非常简单、易读的 数据 结构。通常我们在做开发时,会选取 json 作为 数据 传输 格式。同时为了提升性能、降低带宽,我们一般会对 json 数据 进行 压缩 。今天我们就来谈谈各种 压缩 方法。 1、常规 压缩 : 默认的 json 数据 是带有换行的,所以最简单的 压缩 方法是将 json 中的回车换行去掉, 压缩 成一行字符串。 测试:找了一个大的 json 字符串,原始大小为1.1m,去掉回车换行 压缩 成一行后,大小变为了360k。 在线 压缩 工具:https://www.be json .com/ 其次,我们还可以将 json 中的ke
我可以提供一个示例代码,它可以帮助您实现从MQTT 传输 JSON 数据 并在 PHP 中实时显示的功能: <? php // 连接到MQTT服务器 $client = new Mosquitto\Client(); // 订阅来自MQTT的 JSON 数据 $client->onConnect('connect'); $client->onMessage('message'); $client->connect("localhost", 1883, 60); // 开始循环 $client->loopForever(); // 连接MQTT服务器 function connect($r) { global $client; echo "I'm connected\n"; $client->subscribe(' json ', 1); } // 接收 JSON 数据 并在 PHP 中实时显示 function message($message) { printf("\nGot a message on topic %s with payload:%s", $message->topic, $message->payload); $data = json _decode($message->payload, true); print_r($data);