手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

关于base64

首页 > PHP >

以前也曾经转载过关于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代码
  1. function exchange ( $string , $reverse = false )  
  2. {  
  3.     if ( $reverse === false ){  
  4.         return str_replacearray("/","+","="), array(":","|",";"), $string );  
  5.     }else{  
  6.         return str_replacearray(":","|",";"), array("/","+","="), $string );  
  7.     }  
  8. }  
其实功能很简单,无非就是把这三个有特殊意义的字符转换成在URL里不被解析的三个字符,只要不和base64所规定的字符相关,也不是URL处理中的特殊字符,这三个字符你可以替换成你平时喜欢用的字符。。。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

1条记录访客评论

原来自己写错了东西。。。唉。。。

Post by gouki on 2009, November 2, 11:11 AM 引用此文发表评论 #1


发表评论

评论内容 (必填):