在使用
base64
对字符串编码后,会出现特殊符号'+','/','='
,如果该字符串通过url传递会出现意想不到的问题,所以,这里需要对编码后的字符串里的特殊字符进行过滤处理,来解决该问题。
如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用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);
}
注:本文为转载,原文地址