以前也曾经转载过关于BASE64方面的文章,那时候仅仅介绍了原理啥的。这回我找来的内容是如何实现的。。。
通过google找来了javaeye上的文章,他写了转载自xxx,进入xxx的页面,他告诉我转载自yyy每个人在转载的时候都去掉了一些内容。基于这样的现状,我。。。
不想转载了,贴出几个地址,自己看吧。
javaeye:http://chmod777.javaeye.com/blog/320301
xxx:http://www.cnblogs.com/yiki/archive/2009/01/18/1377828.html
yyy:http://www.cnblogs.com/reonlyrun/archive/2006/12/29/640991.html
这些实现在PHPer看来都是学习的经验,但phper根本不需要进行这些,因为php自带了base64_encode,base64_decode函数。
我要说的是,如何将加密的后的字符串在URL里传递,众所周知,base64中有三个特殊字符:"/,+,=",其中,=是补位码,/和+的标准字符,但/和=在URL里有着特定的意义,如果放到URL里,可能会被当成其他功能进行处理 。
于是,写了一个小函数进行了转换:
PHP代码
- function exchange ( $string , $reverse = false )
- {
- if ( $reverse === false ){
- return str_replace( array("/","+","="), array(":","|",";"), $string );
- }else{
- return str_replace( array(":","|",";"), array("/","+","="), $string );
- }
- }