php base64如何进行URL字符串编码和解码?
16lz
2021-01-22
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 vsprintf()函数格式化字符串操作原理
- 学习php中利用explode函数分割字符串到数组
- php的字符串管理 zend_string
- 总结PHP字符串与数组处理函数用法
- 分析PHP URL中特殊字符引起的问题(+,\,=)
- php字符串函数有哪些
- php响应Json字符串头部出现非法字符“\ufeff”的问题处理