我使用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'])
。