2013-10-21 328 views
4

我正在寻找一种解决方案来在JavaScript中压缩字符串,使用GET(jsonp)发送它,并使用PHP解压缩。最好的办法是有快速的代码和良好的压缩。我发现lz-string库,但看起来它没有PHP后端。任何其他类似的库或LZ字符串的PHP实现?JavaScript字符串压缩+ PHP解压缩

+1

为什么不只是通过浏览器使用正常的gzip压缩? – feeela

+0

使用PHP,您可以尝试gzdeflate函数。 –

回答

0

至于客户端JavaScript压缩检查该放气实现:

https://github.com/dankogai/js-deflate

要解压缩PHP端你需要的是gzinflate()

陷阱

  1. 如果您想将来自客户端的压缩数据发布到serv呃,它可能是一个好主意,首先base64编码。 在服务器端,你将不得不调用gzinflate(base64_decode($ post_body));

  2. JavaScript deflate实现或PHP充气实现不是100%正确的,有时很少gzinflate会返回错误。这意味着如果你沿着这条路走下去,你应该有一些回退机制,比如:尝试发布压缩数据。如果失败回退到未压缩的数据。

  3. 保持压缩级别或你们必然要碰到的JavaScript超时错误

  4. 如果你打算压缩大量的数据(100 + KB),也许在老的浏览器(即< = 9),你需要拆分主deflate循环,以便它异步(使用setTimeout)一次处理更小的数据块。理想情况下,每个块不应该让JS解释器忙于超过100毫秒,否则您会降低UI响应度或运行到丑陋的JS超时弹出错误。

1

您可以尝试 - http://rosettacode.org/wiki/LZW_compression它已在JavaScript,PHP和其他语言实现。

+0

注意:在执行解压缩时出现错误:它应该是$ w。 $ entry [0],而不是$ w + $ entry [0] – IARI

+1

aaw还有更多的错误... -.-糟糕的工作谁编码 – IARI