Im base 64编码一个字符串,用作URL参数。
我知道base 64可以使用诸如'/'之类的字符,这些字符不能很好地与URL配合使用:
$encoded = base64_encode($value);
return str_replace(array('+', '=', '/'), array('-', '_', '~'), $encoded);
我只是想知道,我怎样才能将编码后的64字符串(带有替换的字符串)恢复为原始格式?
2 个答案:
答案 0 :(得分:1)
是的,这将完全奏效。你实际上通常可以完全放弃等于(=
):)
要做到这一点,只需执行完全相反的str_replace()
函数,前两个参数相反。
答案 1 :(得分:1)
如Biffen所述,请查看urlencode
和urldecode
如果您真的想要这样做,则需要先将值恢复为原始值,然后解码
$value = str_replace(array('-', '_', '~'), array('+', '=', '/'), $value);
return base64_decode($value);