底部64返回原始字符串


Base 64 back to original string?

Im base 64编码一个字符串用作URL参数。

我知道base 64可以使用诸如"/"之类的字符,这些字符在URL中不太好用,所以:

$encoded = base64_encode($value);
return str_replace(array('+', '=', '/'), array('-', '_', '~'), $encoded);

我只是想知道,我如何才能将编码的64进制字符串(替换了字符)恢复到原始形式?

是的,这完全可行。实际上,你可以完全放弃等式(=):)

要做到这一点,只需使用相反的前两个参数执行完全相反的str_replace()函数。

如Biffen所述,请查看urlencodeurldecode

如果你真的想这么做,你需要首先将你的值恢复到原始值,然后解码

$value = str_replace(array('-', '_', '~'), array('+', '=', '/'), $value);
return base64_decode($value);