【问题标题】:The gzuncompress of php equivalent on javascriptjavascript 上 php 等效的 gzuncompress
【发布时间】:2015-02-27 20:43:03
【问题描述】:

我有一个 php 文件:

echo(gzcompress("TEST COMPRESS"));

在 javascript 上,我在 php 上做了一个请求,我想要一个函数 对 gzuncompress(data) 执行相同的操作,以便在客户端再次获取 result = "TEST COMPRESS"。

编辑: 谢谢@aaronk6,zlib 成功了!

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

【问题讨论】:

  • 使用 HTTP GZip 压缩;你不需要这样做。
  • 你好,不是http,是phonegap,我需要一个函数:D
  • PhoneGap 中的请求仍然是 HTTP 请求。

标签: javascript php zip compression


【解决方案1】:

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

浏览器没有具有可从 JavaScript 访问的 uncompress 方法,因此没有等效方法。当您想在 JavaScript 中解压缩 gzip 后的数据时,您需要使用 gzip 算法的 JavaScript 实现。

zlib.js 似乎可以做到这一点。

【讨论】:

  • 嘿嘿谢谢!工作完美!!我只需要将 php 中的 gzcompress() 更改为 gzencode() 并使用 Zlib.Gunzip(data).decompress()
【解决方案2】:

如果您的服务器上运行 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=');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2011-10-28
    • 2010-10-21
    • 2013-07-15
    • 2015-01-16
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多