0

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

$value=gzcompress("hello");

myphp.php?q=$value;

然后我gzuncompress()myphp.php

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

但我收到这个警告:

gzuncompress(): data error 

为什么这不起作用?

4

1 回答 1

1

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

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

PHP 会在填充 $_GET 时自动为你做 url 解码,所以解码端会很简单

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

和以前一样。

于 2013-03-20T14:10:04.503 回答