PHP简短的rawurlencode

时间:2012-09-28 08:01:09

标签: php url

有没有办法缩短php rawurlencode的结果 放置在链接中时相当长,例如website.php?='rawurlencoderesult' 我希望能够缩短链接,但仍保留完整的解码结果。 编码很长,因为它包含加密值。

有没有办法在PHP中本地执行此操作。提前谢谢。

2 个答案:

答案 0 :(得分:2)

我猜你的加密算法会产生许多在URL中被禁止的字符(也就是说,它输出一个二进制字符串)。对它们进行URL编码后,它们的大小基本上是三倍,因为每个非法字符都被%xx代码替换。

为避免这种情况,您需要首先将加密值字符串转换为允许URL的字符范围,即0123456789abcdefghijklmnopqrstuvwxyz-_.~

执行此操作的一种方法 - 尽管效率低 - 是使用bin2hex()(和hex2bin()转换回来)。最好使用如上所述使用全部字符的转换函数,但此时我不能指向你。

答案 1 :(得分:0)

你可以用以下方式回答你的第一个问题:

“编码很长,因为它包含加密值。”

有许多半复杂的方法可以保留此服务器端,这取决于链接的使用情况。就个人而言,我会保持原样,或者通过AJAX将“rawurlencoderesult”的值存储在变量中,然后将其存储在会话变量或数据库中。