在javascript上等效的php的gzuncompress

时间:2015-02-27 20:43:04

标签: javascript php zip compression

我有一个php文件:

echo(gzcompress("TEST COMPRESS"));

在javascript上我在php上做了一个请求,我想要一个函数 做同样的gzuncompress(数据)来取结果=" TEST COMPRESS"再次在客户端。

编辑: 谢谢@ aaronk6,zlib工作了!

如果有人准备好这个问题,如果php使用gzencode(),则zlib将有效,gzcompress将无效。

2 个答案:

答案 0 :(得分:2)

正如@SLaks所指出的那样,这可能毫无意义,但这是你问题的答案。

浏览器具有可从JavaScript访问的解压缩方法,因此没有等价物。如果要在JavaScript中解压缩gzip压缩数据,则需要使用gzip算法的JavaScript实现。

zlib.js似乎能够做到这一点。

答案 1 :(得分:0)

如果您的服务器上运行的是PHP,并且您想用Javascript解压缩 zlib压缩的字符串,那么使用Fetch API库的替代方法是使用{{ 1}}重新与服务器联系,然后只需使用PHP gzuncompress()

示例:

const decompressString = async (compressedString) => {

  const decompressionScriptFilepath = '/decompress-string.php';
  const compressedStringToSend = { method: 'POST', body: compressedString };
  const response = await fetch(decompressionScriptFilepath, compressedStringToSend);

  return await response.text();
}

位于/decompress-string.php的PHP脚本

<?php

  $Compressed_String = file_get_contents('php://input');
  $decompressedString = gzuncompress($Compressed_String);
  echo $decompressedString;

?>

然后,您只需要调用javascript函数:

decompressString('eNoLycgsVgCiRIWS1OISPYWQUf4of5Q/yh/lj/JH+aP8wc0HAERY4KM=');