我对php中传递的值使用gzcompress()
,例如:
$value=gzcompress("hello");
myphp.php?q=$value;
然后我在gzuncompress()
中myphp.php
:
$q=$_GET["q"];
gzuncompress($q);
但是我收到了这个警告:
gzuncompress(): data error
为什么这不起作用?
答案 0 :(得分:1)
您需要urlencode()压缩数据。你不能简单地将基本上随机的二进制垃圾打成这样的网址。可能性很高,压缩数据中至少一个的字符将是URL元字符,例如, +
,在解码时被破坏为' '
(空格)字符。所以,
$value = urlencode(gzcompress('hello'));
PHP会在填充$ _GET时自动为你解码url,所以解码结束就是
$q = gzuncompress($_GET['q'])
和以前一样。