1、base64_encode — 使用 MIME base64 对数据进行编码
为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
加密后字符串格式为:大小写字母、数字、“+”号、“=”号和“/”号,“=”号最多两个。
base64编码url问题(参照):
//url base64编码
function urlsafe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
//url base64解码
function urlsafe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
2、base64_decode— 对使用 MIME base64 编码的数据进行解码
3、rawurlencode— 按照 RFC 3986 对 URL 进行编码
在 PHP 5.3.0 之前,rawurlencode 根据 » RFC 1738 来编码波浪线(~)。
字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数
4、rawurldecode— 对已编码的 URL 字符串进行解码
字符串中百分号(%)后跟两位十六进制数的序列都将被替换成原义字符。
5、urlencode— 编码 URL 字符串
此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 » RFC3896 编码
6、urldecode — 解码已编码的 URL 字符串
解码给出的已编码字符串中的任何 %##。 加号(’+’)被解码成一个空格字符。
示例:
$str = 'xia22wd';
$str2 = 'aHFZONlN2gkONRbUKCcM5y9Y+e2UbXK70JurgX3XcSU=';
//base64_encode、base64decode加解密
$base_enstr = base64_encode($str);
$base_destr = base64_decode($base_enstr);
//urlencode、urldecode转换字符串
$urlen_str = urlencode($str2);
$urlde_str = urldecode($str2);
//rawurlencode、rawurldecode转换字符串
$rawurlen_str = rawurlencode($str2);
$rawurlde_str = rawurldecode($str2);
//输出各函数执行结果
echo '<b>str</b>: '.$str.'<br>';
echo '<b>base64_encode</b>: '.$base_enstr.'<br>';
echo '<b>base64_decode</b>: '.$base_destr.'<br>';
echo '<b>urlencode</b>: '.$urlen_str.'<br>';
echo '<b>urldecode</b>: '.$urlde_str.'<br>';
echo '<b>rawurlencode</b>: '.$rawurlen_str.'<br>';
echo '<b>rawurldecode</b>: '.$rawurlde_str.'<br>';
结果为:
str: xia22wd
base64_encode: eGlhMjJ3ZA==
base64_decode: xia22wd
urlencode: aHFZONlN2gkONRbUKCcM5y9Y%2Be2UbXK70JurgX3XcSU%3D
urldecode: aHFZONlN2gkONRbUKCcM5y9Y e2UbXK70JurgX3XcSU=
rawurlencode: aHFZONlN2gkONRbUKCcM5y9Y%2Be2UbXK70JurgX3XcSU%3D
rawurldecode: aHFZONlN2gkONRbUKCcM5y9Y+e2UbXK70JurgX3XcSU=