减少PHP表单的查询字符串大小

Reducing Query string size of PHP form

本文关键字:字符串 查询 PHP 表单 减少      更新时间:2023-09-26

我现在有一个这样的URL

http://blahblah.com/process.php?q=[HUGEEEEEEEEEEEEEEEEEEEEEEEE STRING of 5000 chars]

我的目标是把它转换成类似

的东西
http://blahblah.com/process.php?q=[less charcters]

第一个问题

如何在GET变量上执行函数(例如加密函数),然后将其发送到操作页面?

我看到过很多类似的问题。

第二题:

假设,我可以通过某种方式(也许通过jQuery/JavaScript或其他东西)做到上述。如何在index.php页面进行压缩,在process.php页面进行解压?

我尝试

:

查找固定长度的函数:

我看过一些保持字符串大小的加密。md5()给出了一个短而整洁的标准长度,即使是一个非常大的字符串。但不幸的是,md5不容易解码。还有其他这样的函数,我解码它有一个固定的长度吗?如果有,我可以使用它,假设我知道如何执行步骤1。

编辑:我写了一个请求,不要把这个问题标记为重复的问题,一个没有回答的问题已经被明确地问了一遍。请阅读@Jeremy的评论,他在关注这篇文章。

我个人认为最好使用POST将数据发送到页面。我很确定你不能使用MD5这样的东西来"压缩"数据,因为MD5所做的是对数据进行哈希,所以它会查看你的数据运行一个算法来创建这个固定长度的哈希。

然而,两个数据集创建相同哈希的可能性极小,因此在我看来,不可能可靠地解密MD5或其他类似的哈希。

你的问题是你使用互联网的方式不对。URL是有限的(这取决于浏览器),所以不要尝试使用长URL -即使你想缩短它。

请记住,我们使用WordWideWeb已经很长时间了,如果你遇到了僵局,你只需要重新考虑你的问题。也许你用错了当前的技术。

因此,使用POST来传输数据(正如前面提到的)。

如果你想"压缩"你的数据,你应该使用zip之类的东西,然后你必须让URL确认为BASE64。这无论如何都不合适,而且非常可怕。(当然,它不能保证URL的长度)。

MD5是一个哈希而不是一个压缩的东西。MD5是不可逆转的。一旦你搞砸了一件事,你就不能再回头了。这不是一个神奇的方式来压缩成一个短数字的吨兆字节。这是一个简短的东西,可以告诉原始数据是否被修改(如果您这样做两次)。

见http://en.wikipedia.org/wiki/Hash_function见http://en.wikipedia.org/wiki/MD5

BTW:这是相同的如何压缩/解压缩一个长查询字符串在PHP?