基地64回原始字符串?

时间:2014-10-04 14:01:17

标签: php

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所述,请查看urlencodeurldecode

如果您真的想要这样做,则需要先将值恢复为原始值,然后解码

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