Im base 64编码一个字符串用作URL参数。
我知道base 64可以使用诸如"/"之类的字符,这些字符在URL中不太好用,所以:
$encoded = base64_encode($value);
return str_replace(array('+', '=', '/'), array('-', '_', '~'), $encoded);
我只是想知道,我如何才能将编码的64进制字符串(替换了字符)恢复到原始形式?
是的,这完全可行。实际上,你可以完全放弃等式(=
):)
要做到这一点,只需使用相反的前两个参数执行完全相反的str_replace()
函数。
如Biffen所述,请查看urlencode
和urldecode
如果你真的想这么做,你需要首先将你的值恢复到原始值,然后解码
$value = str_replace(array('-', '_', '~'), array('+', '=', '/'), $value);
return base64_decode($value);