在 PHP 中发送之前压缩 JSON 对象
我感兴趣的是先压缩服务器上 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 恶作剧,它可以很好地输出原始文本。
我想它不一定是 zip 压缩,但如果你能给我指出正确的方向,任何压缩都会有帮助,我可能会弄清楚。谢谢!
I'm interested in zipping the text output from a JSON object on a server before transporting it to my mobile device that has requested the object. A small test of the txt zipping will reduce its size by about 80%! This is great for mobile! :)
I don't really need to save the zip file i create on the server at all, just have it reside in memory, then echo it out. I can unzip it on the android side no problem.
Anyways, I've done a little manipulation but I haven't been able to come up with anything that works, here's what I have so far:
while($e=mysql_fetch_assoc($q))
$output[]=$e;
$zip = new ZipArchive();
$zip->addFromString("test",(json_encode($output)));
echo $zip;
I know im probably doing something massively wrong, im not very familiar with php. My $q is a cursor containing lots of sql rows, and if I use print(json_encode($output));
instead of all the zip shenanigans it works fine to output the raw text.
I suppose it doesnt have to be zip compression, but any compression would be helpful if you could point me in a proper direction I can likely figure it out. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将
ob_start
与ob_gzhandler
一起使用:you can use
ob_start
withob_gzhandler
:服务器端:创建一个仅包含一个属性的 JSON 对象,该属性是一个字节数组,该属性是压缩的 JSON 对象并将其发送到客户端。
客户端:解压对象中包含的字节数组,得到原始的JSON DATA。
Pro:服务器-客户端通信速度最快 5 倍,服务器 IO 工作更少。
需要服务器更多的 CPU 工作。
请考虑一下:P
Server Side:Create a JSON object that contain only a property that is a byte array that is the JSON object zipped and send it to client.
Client Side:Unzip the byte array contained in the object to obtain the original JSON DATA.
Pro:5X Fastest communication Server-Client,less IO work for Server.
Required more CPU work fromServer.
Take your consideration :P