gzcompress和gzuncompress在php中

时间:2013-03-20 14:06:25

标签: php

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

$value=gzcompress("hello");

myphp.php?q=$value;

然后我在gzuncompress()myphp.php

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

但是我收到了这个警告:

gzuncompress(): data error 

为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

您需要urlencode()压缩数据。你不能简单地将基本上随机的二进制垃圾打成这样的网址。可能性很高,压缩数据中至少一个的字符将是URL元字符,例如, +,在解码时被破坏为' '(空格)字符。所以,

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

PHP会在填充$ _GET时自动为你解码url,所以解码结束就是

$q = gzuncompress($_GET['q'])
和以前一样。