gzcompress and gzuncompress in php


gzcompress and gzuncompress in php

我使用gzcompress()在php中传递的值,例如:

$value=gzcompress("hello");
myphp.php?q=$value;

然后我gzuncompress()它在myphp.php:

$q=$_GET["q"];
gzuncompress($q);

但是我得到了这个警告:

gzuncompress(): data error 

为什么不工作?

需要对压缩数据进行urlencode()处理。你不能简单地将那些看起来随机的二进制垃圾放入这样的url中。压缩数据中至少有一个字符是URL元字符,例如+,它在解码时被分解为' '(空格)字符。

$value = urlencode(gzcompress('hello'));

PHP将在填充$_GET时自动为您进行url解码,因此解码结束将简单地为

$q = gzuncompress($_GET['q'])