Base64可以将二进制转换为可见字符进行HTTP传输php 解码,但是base64会生成URL转换后的“+”、“/”、“=”等特殊字符,导致两方面的数据不一致。
我们可以将“+”、“/”和“=”替换为URL在发送前不会转码的字符。 收到数据后php 解码,将这些字符替换回去,然后解码。
1. URL安全字符串编码:
function urlsafe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; }
登录复制
2. 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教程》