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字串編碼和解碼?的詳細內容,更多請關注TW511.COM其它相關文章!