2013-03-20 33 views
0

我用gzcompress()在PHP中傳遞的值,例如:gzcompress和gzuncompress在PHP

$value=gzcompress("hello"); 

myphp.php?q=$value; 

然後我gzuncompress()myphp.php

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

,但我得到這樣的警告:

gzuncompress(): data error 

爲什麼這不起作用?

回答

1

您需要urlencode()壓縮數據。你不能簡單地將基本上隨機看起來的二進制垃圾放入類似的URL中。至少ONE的壓縮數據中的字符將成爲URL元字符,例如, +,當解碼時它會被篡改爲' '(空格)字符。所以,

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

PHP會做的URL解碼支持你自動填充$ _GET,所以解碼端將會更加簡單

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

如前。

+0

感謝您的回答。有用。但是,電子郵件http://mydomain/myphp.php?q = x%9CK%04%00%00b%00b上的此鏈接不起作用,點擊時不會發生任何事情。請介意看看嗎? – 2013-03-20 17:44:24

+0

與$ _POST相同 – wesamly 2014-02-26 12:19:35

相關問題