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 に、本質的にランダムに見えるバイナリ ガベージを平手打ちすることはできません。圧縮データ内の文字の少なくとも 1 つが URL メタ文字である可能性は高く、たとえばデコード+' 'に (スペース) 文字にマングルされます。そう、

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

PHP は、$_GET を設定するときに URL のデコードを自動的に行うため、デコードの最後は次のようになります。

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

従来通り。

于 2013-03-20T14:10:04.503 に答える