在php中压缩数据并在javascript中解压缩

Imr*_*hsh 4 javascript php compression

祝贺所有人

有没有办法压缩从php(服务器)发送的数据,然后使用javascript(客户端)解压缩数据?

感谢您

sst*_*ger 6

我必须同意@Domenic的答案.@Nishchay Sharma离开了.

我要添加的唯一内容是,如果您希望在每个脚本的基础上执行此操作而不是将整个服务器配置为压缩所有内容,那么通过使用PHP的gzencode()函数以及标头调用来实现您的目标是微不足道的:

http://www.php.net/manual/en/function.gzencode.php

例如,假设您正在通过对PHP页面的Ajax调用来检索大量数据.您可以将PHP页面配置为使用gzencode,如下所示:

<?php
$someBigString = gzencode('blahblah...blah');

header("Content-type: text/javascript");
header('Content-Encoding: gzip'); 

echo $someBigString;  
?>
Run Code Online (Sandbox Code Playgroud)

(当然,这是过分简化的,但我保持简单.)

您的JS Ajax调用将拉下数据,查看gzip标头,并自动解压缩.我个人将这种技术用于Google Maps的非常大的地理坐标数据集,在未压缩时可以达到几兆字节.这可不容易!


Dom*_*nic 2

是的; 如果您配置服务器来提供数据,希望您使用 GZIP 压缩以 JSON 等正常格式发送数据,那么您只需在 JavaScript 中执行 Ajax 调用,浏览器就会自动解压缩。

要进行设置,请将这些行复制到您的.htaccess文件中。(我假设您使用的是 Apache,因为它是提供 PHP 服务的最常见平台。)

  • 这与 PHP 中的压缩和解压缩有何等价?解压缩是在客户端完成的——由浏览器完成,不是 JavaScript,但肯定不是 PHP。 (2认同)
  • @Nishchay Sharma 这不是 GZIP 压缩的工作原理;如果您需要证据,我建议您查看 Chrome 或 Firefox 源代码。这将是非常低效的并且违背了 GZIP 的全部目的。 (2认同)