作者:灯火阑珊2502936477 | 来源:互联网 | 2020-09-13 05:32
Base64可以将二进制转码成可见字符方便进行http传输,但是base64转码时会生成“+”,“”,“”这些被URL进行转码的特殊字符,导致两方面数据不一致。
Base64可以将二进制转码成可见字符方便进行http传输,但是base64转码时会生成“+”,“/”,“=”这些被URL进行转码的特殊字符,导致两方面数据不一致。
我们可以在发送前将“+”,“/”,“=”替换成URL不会转码的字符,接收到数据后,再将这些字符替换回去,再进行解码。
一、URL安全的字符串编码:
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
二、URL安全的字符串解码:
function urlsafe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
推荐教程: 《php教程》
以上就是php base64如何进行URL字符串编码和解码?的详细内容,更多请关注 第一PHP社区 其它相关文章!