Javascript字符串压缩和PHP / Ruby解压缩

时间:2013-02-14 08:04:36

标签: php javascript ruby compression

是否有针对字符串的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 个答案:

答案 0 :(得分:4)

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

例如zip.js

Zip当然也是supported in PHP

答案 1 :(得分:2)

应该这样做

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

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

答案 2 :(得分:0)

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

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

如果由于某种原因你无法改变你的web服务器配置,php也有一个你可以使用的内置gzip处理程序。请参阅:ob_gzhandler

编辑:

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

请参阅此页:JavaScript implementation of Gzip

答案 3 :(得分:0)

运行谷歌搜索“ruby decompress string”会出现这个:How to decompress Gzip string in ruby?这就是你要找的东西。

相关问题