2

在使用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);
 }

注:本文为转载,原文地址


Corwien
6.3k 声望1.6k 粉丝

为者常成,行者常至。