有没有办法压缩GET字符串所以它不会这么长?

时间:2010-05-05 20:05:58

标签: php encryption get compression

我需要压缩字符串,因此对于GET方法表单来说它更短。有没有办法压缩字符串,它将在以后解密?那样......

?error=LOTS OF STUFFLOTS OF STUFFLOTS OF STUFFLOTS OF STUFFLOTS OF STUFF

在某种键中更短

?error=somekey

所以我可以稍后再回来看看结果。最好不要使用MySQL。

任何人都知道一个很好的方法吗?

更新:为了澄清,我正在使用GET,因为这是一个跨站点包含,并且不会在HTTP包含文件的变量范围内接受POST。

4 个答案:

答案 0 :(得分:1)

简化您的GET字符串的最简单方法。使用POST

更新:再次,如果您控制表单的发送方式,请使用POST。使用它。不要使用GET。要明确,如果您可以使用{{ 1}}。

但是,您需要将此数据作为常规旧链接传递。在这种情况下,我猜你可以试试php的compression functions。有些直接在字符串上操作。

例如,gzcompress()gzuncompress()可用于压缩/解压缩字符串。从php手册:

POST

当然,您必须通过<?php $compressed = gzcompress('Compress me', 9); $uncompressed = gzuncompress($compressed); echo $uncompressed; ?> urlencode()运行它 - 因为我确信压缩算法会输出二进制数据,但可能无法为您节省任何费用。

或者它根本不起作用。尝试会很有趣。

更新:经过测试,这很疯狂,但确实让你的示例字符串缩小了。

答案 1 :(得分:1)

如果您使用的是PHP,发送错误消息的最简单方法是使用$_SESSION。只需在页面顶部说session_start();,然后说出$_SESSION['error'] = "TEXT";。然后是isset($_SESSION['error']);

当然,您可以随时使用$_POST

答案 2 :(得分:1)

我会使用POST代替...或者,提出自己的密钥映射(错误= 1会映射到一个冗长的罗嗦错误 - 就像Col. Shrapnel的例子)。

您也可以使用哈希表。 http://en.wikipedia.org/wiki/Hash_function

答案 3 :(得分:0)

不是真的'即时',你可能能够Gzip然后base64编码,(但base64编码增加了大小,我只是不知道多少)

但实际上,如果你超过了GET大小,你可能只需要切换到POST。