我有兴趣将服务器上的JSON对象的文本输出压缩到我请求该对象的移动设备之前。对txt压缩的小测试将使其尺寸减小约80%!这非常适合移动设备! :)
我根本不需要保存我在服务器上创建的zip文件,只需将其保存在内存中,然后将其回显。我可以在android端解压缩没问题。
无论如何,我做了一些操作,但我还没有能够提出任何有用的东西,这是我到目前为止所做的:
while($e=mysql_fetch_assoc($q))
$output[]=$e;
$zip = new ZipArchive();
$zip->addFromString("test",(json_encode($output)));
echo $zip;
我知道我可能正在做一些大错的事,我对php不是很熟悉。我的$ q是一个包含大量sql行的游标,如果我使用print(json_encode($output));
而不是所有的zip shenanigans,它可以正常输出原始文本。
我认为它不一定是拉链压缩,但如果你能指出我正确的方向我可能会弄明白,任何压缩都会有所帮助。谢谢!
答案 0 :(得分:9)
您可以ob_start
使用ob_gzhandler
:
if(function_exists('ob_gzhandler')) ob_start('ob_gzhandler');
else ob_start();
echo json_encode($output);
ob_end_flush();
答案 1 :(得分:0)
服务器端:创建一个JSON对象,该对象仅包含一个属性,该属性是压缩的JSON对象的字节数组,并将其发送到客户端。 客户端:解压缩对象中包含的字节数组以获取原始JSON数据。 Pro:5X最快的通信服务器 - 客户端,减少服务器的IO工作量。 从服务器需要更多CPU工作。 请你考虑一下:P