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