减少PHP表单的查询字符串大小
Reducing Query string size of PHP form
我现在有一个这样的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?
- 如何有效地将游戏数据存储在URL查询字符串中
- 从查询字符串参数推断出正确的数据类型
- AngularJS:获取链接中没有哈希的查询字符串值
- AngularJS,如何更改查询字符串
- Datatables查询url字符串:需要regex来修复url解析
- 如何将activeadmin查询字符串传递给batch_action
- 如何从查询字符串中的输入字段发回文本
- Django在使用AJAX时没有接收到新的查询字符串
- 使用查询字符串方法清除浏览器缓存
- 用于刷新的Javascript更改查询字符串
- 我想将查询字符串变量添加到JSON名称/值对中
- 将查询字符串值从页面传递 asp.net 到 iframe
- jqueryajax生成查询字符串,如果未定义则不通过
- 如何将查询字符串传递到HTML框架
- iron路由器将参数添加到字符串中,并添加一个查询
- 使用字符串查询此选择器
- 替换URL'中的字符串查询;s与Javascript(有条件)
- 基于匹配或正则表达式的查询字符串查询Mongo
- 简单json字符串查询
- 向Django传递一个布尔字符串查询