我有一个php文件,它做:
echo(gzcompress("TEST COMPRESS"));
在 JavaScript 上,我在 PHP 上做了一个请求,我想要一个函数对 gzun压缩(data( 执行相同的操作,以便在客户端再次获取结果 = "测试压缩"。
编辑:谢谢@aaronk6,zlib 工作了!
如果有人准备好这个问题,如果 php 使用 gzencode((,zlib 将起作用,gzcompression 将不起作用。
正如@SLaks指出的那样,这可能是毫无意义的,但是这里是您问题的答案。
浏览器没有可从JavaScript 访问的解压缩方法,因此没有等效方法。当你想在 JavaScript 中解压缩 gzip 数据时,你需要使用 gzip 算法的 JavaScript 实现。
有 zlib.js它似乎能够做到这一点。
如果你的服务器上运行了 PHP,并且你想在 Javascript 中解压缩一个 zlib 压缩的字符串,那么使用 zlib.js
库的另一种方法是使用 Fetch API
重新联系服务器,然后简单地使用 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();
}
PHP 脚本在/decompress-string.php
<?php
$Compressed_String = file_get_contents('php://input');
$decompressedString = gzuncompress($Compressed_String);
echo $decompressedString;
?>
然后你只需要调用javascript函数:
decompressString('eNoLycgsVgCiRIWS1OISPYWQUf4of5Q/yh/lj/JH+aP8wc0HAERY4KM=');