PHP安全的URL字符串base64编码和解码


Posted in PHP onJune 19, 2014

如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用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 $_ENV为空的原因分析
Jun 01 PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
PHP文件操作实现代码分享
Sep 01 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 PHP
PHP实现小偷程序实例
Oct 31 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 #PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 #PHP
ThinkPHP CURD方法之field方法详解
Jun 18 #PHP
ThinkPHP CURD方法之data方法详解
Jun 18 #PHP
ThinkPHP CURD方法之order方法详解
Jun 18 #PHP
ThinkPHP CURD方法之table方法详解
Jun 18 #PHP
ThinkPHP CURD方法之page方法详解
Jun 18 #PHP
You might like
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
Bootstrap插件全集
2016/07/18 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Django添加sitemap的方法示例
2018/08/06 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
python Scrapy框架原理解析
2021/01/04 Python
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
delete in子查询不走索引问题分析
2022/07/07 MySQL