6

是否有用于字符串的 Javascript 压缩和 PHP/Ruby 解压缩库?我需要它,因为我需要使用 Ajax 在慢速上传链接上向使用 PHP/Ruby 作为服务器端语言的 Web 服务器发送一个很长的文本字符串。

var x = $('#sources').html();
// a very-very long text
var xo = x, o = {};
if(x.length>512*1024) {
  x = compress(x);
  o.c = 1;
}
o.x = x;
$.post('target.php',o,function(res){alert(res==xo)});

在服务器端(例如 PHP):

<?php
  if(isset($_POST['c']) && $_POST['c']=='1') {
    $x = decompress($_POST['x']);
  } else {
    $x = $_POST['x'];
  }
  echo $x;
4

4 回答 4

4

最常见的压缩算法 Zip 有许多 JS 实现。

例如zip.js

PHP当然也支持Zip 。

于 2013-02-14T08:05:56.603 回答
2

应该这样做

http://webdevwonders.com/lzw-compression-and-decompression-with-javascript-and-php/

LZW 适用于实际包含人类可读文本的字符串

于 2013-02-14T08:07:50.443 回答
0

运行谷歌搜索“ruby decompress string”会得到这个:How to decompress Gzip string in ruby​​? 这就是你要找的。

于 2013-03-01T04:15:43.393 回答
0

假设您通过 http 发送文件,我建议您让 Web 服务器通过发送带有 gzip 内容编码的文件来处理此问题。

例如,如果您使用 Apache,则可以启用mod_deflate

如果由于某种原因您无法更改 Web 服务器配置,则 php 也有一个内置的 gzip 处理程序,您可以使用它来代替。看:ob_gzhandler

编辑:

至于客户端到服务器,任何 XmlHttpRequest 实现似乎都不直接支持这一点。您也许可以为 Javascript 找到一个自定义的 gzip 压缩算法,然后设置请求标头以指示它已压缩。这样它就可以被 Web 服务器透明地解码,您不必在 php.ini 中做任何特殊的事情。

请参阅此页面:Gzip 的 JavaScript 实现

于 2013-02-14T08:13:37.160 回答