有没有办法缩短php rawurlencode的结果 放置在链接中时相当长,例如website.php?='rawurlencoderesult' 我希望能够缩短链接,但仍保留完整的解码结果。 编码很长,因为它包含加密值。
有没有办法在PHP中本地执行此操作。提前谢谢。
答案 0 :(得分:2)
我猜你的加密算法会产生许多在URL中被禁止的字符(也就是说,它输出一个二进制字符串)。对它们进行URL编码后,它们的大小基本上是三倍,因为每个非法字符都被%xx
代码替换。
为避免这种情况,您需要首先将加密值字符串转换为允许URL的字符范围,即0123456789abcdefghijklmnopqrstuvwxyz-_.~
。
执行此操作的一种方法 - 尽管效率低 - 是使用bin2hex()
(和hex2bin()
转换回来)。最好使用如上所述使用全部字符的转换函数,但此时我不能指向你。
答案 1 :(得分:0)
你可以用以下方式回答你的第一个问题:
“编码很长,因为它包含加密值。”
有许多半复杂的方法可以保留此服务器端,这取决于链接的使用情况。就个人而言,我会保持原样,或者通过AJAX将“rawurlencoderesult”的值存储在变量中,然后将其存储在会话变量或数据库中。