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教程》

更多相关文章

  1. 解析PHP vsprintf()函数格式化字符串操作原理
  2. 学习php中利用explode函数分割字符串到数组
  3. php的字符串管理 zend_string
  4. 总结PHP字符串与数组处理函数用法
  5. 分析PHP URL中特殊字符引起的问题(+,\,=)
  6. php字符串函数有哪些
  7. php响应Json字符串头部出现非法字符“\ufeff”的问题处理

随机推荐

  1. Linux 上传代码到github
  2. Linux下非root用户能创建新文件,却不能拷
  3. Linux用户和组的操作(一) 用户文件/etc/pas
  4. Linux命令应用大词典-第21章 LVM和RAID管
  5. Linux网络状态工具ss命令使用详解
  6. [置顶] Linux C编程--string.h函
  7. Ubuntu12挂载扩充/home
  8. Linux文件映射的反思
  9. [转帖]linux文件描述符文件/etc/security
  10. 重装linux,从ubuntu到centos