Javascript 如何用PHP压缩JSON?

Javascript 如何用PHP压缩JSON?,javascript,php,json,apache,compression,Javascript,Php,Json,Apache,Compression,我正在写一个小的分析页面,它将帮助我查找应用程序中的错误。本质上,它允许直观地比较实际数据和日志条目,并对数据执行一些分析 由于这只是为了调试,而且我将在实时站点上部署它,所以我希望它的服务器负载尽可能少。一些分析选项将包括相当繁重的子字符串搜索或n2操作,因此我将把它转移到客户端 这意味着PHP页面将只从表和日志中获取数据,并将其中的一部分写出来。然后,客户端Javascript将执行所有分析等 问题是JSON的数据将有好几MB大,而我与服务器的连接速度很慢。以某种方式压缩数据会很好。有人有想

我正在写一个小的分析页面,它将帮助我查找应用程序中的错误。本质上,它允许直观地比较实际数据和日志条目,并对数据执行一些分析

由于这只是为了调试,而且我将在实时站点上部署它,所以我希望它的服务器负载尽可能少。一些分析选项将包括相当繁重的子字符串搜索或n2操作,因此我将把它转移到客户端

这意味着PHP页面将只从表和日志中获取数据,并将其中的一部分写出来。然后,客户端Javascript将执行所有分析等

问题是JSON的数据将有好几MB大,而我与服务器的连接速度很慢。以某种方式压缩数据会很好。有人有想法吗


环境为PHP+Apache;我不知道是否会安装mod_gzip;我无法控制它。

您可以使用压缩数据。只需将此调用放在任何输出之前的脚本开头:

ob_start('ob_gzhandler');

现在,如果客户端接受,任何输出都将使用gzip或deflate进行压缩。

在PHP 5.4中,现在是JSON\u UNESCAPED\u UNICODE,因此您可以替换字符:

\u00f3->Ĺ›=Ś

情商:

如果您选择apache(正如原始问题中提到的那样),您可以在.htaccess中添加一些规则:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    # Add any mime-type you think is appropriate here
    AddOutputFilterByType DEFLATE application/json
</IfModule>

AddOutputFilterByType DEFLATE text/html
#在此处添加您认为合适的任何mime类型
AddOutputFilterByType DEFLATE应用程序/json

+1——这绝对是一条路要走。但是,请注意,PHP必须配置为--with zlib才能工作这确实使JSON字符串作为压缩数据传输,但压缩因子为1.00x,300kb JSON数据的长度减少了0字节,熵很小。我编写了一个很小的测试脚本,只需将Content-Type头设置为“application/json”,然后初始化输出缓冲区,然后使用echo-json_-encode(…)传输json数据。知道我做错了什么吗?
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    # Add any mime-type you think is appropriate here
    AddOutputFilterByType DEFLATE application/json
</IfModule>