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

news/2024/5/18 16:22:13

在使用base64对字符串编码后,会出现特殊符号'+','/','=',如果该字符串通过url传递会出现意想不到的问题,所以,这里需要对编码后的字符串里的特殊字符进行过滤处理,来解决该问题。

如果直接使用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);
 }

注:本文为转载,原文地址


http://www.niftyadmin.cn/n/4596956.html

相关文章

Matlab练习——多项式和一元方程求解

1. 一元函数 f(x) x^3 (x - 0.98)^2 / (x 1.25)^3 - 5 * (x 1 / x),求f(x) 0 的根 %在函数文件中定义函数 function y fun(x) y x ^ 3 (x - 0.98) ^ 2 / (x 1.25) ^ 3 - 5 * (x 1 / x); end%其他文件中求解 clear; clc; a fzero(fun,[-10,10]…

为什么 Vue 中不要用 index 作为 key

javascript Vue 中的 key 是用来做什么的&#xff1f;为什么不推荐使用 index 作为 key<ul><li>1</li><li>2</li> </ul> {tag: ul,children: [{ tag: li, children: [ { vnode: { text: 1 }}] },{ tag: li, children: [ { vnode: { text:…

Eclipse个最实用的快捷键

一个Eclipse骨灰级开发人员总结了他觉得最实用但又不太为人所知的快捷键组合。通过这些组合能够更加easy的浏览源码&#xff0c;使得总体的开发效率和质量得到提升。 1. ctrlshiftr&#xff1a;打开资源 这可能是全部快捷键组合中最省时间的了。这组快捷键能够让你打开你的工作…

字符函数和内存函数(二)

目录 一、strtok函数 二、strerror函数 三、memcpy函数 3.1memcpy函数的认识 3.2memcpy函数的模拟实现 四、memmove函数 4.1memmove函数的认识 4.2memmove函数的模拟实现 五、memcmp函数 5.1memcmp函数的认识 5.2memcmp函数的模拟实现 六、memset函数 七、字符分类函…

面试考点导图

在这里插入代码片

爬虫练习之数据整理——基于Pandas

上一篇->爬虫练习之数据清洗——基于Pandas 本次以51Job上在东莞地区爬取的以Java为关键词的招聘数据 包括salary company time job_name address字段目的 本次数据整理的小目标是将薪资数据拿出来单独处理为统一的格式, 以便后续的数据统计分析和可视化操作 思路 先来看看数…

cookie sessionStorage localStorage区别

cookie sessionStorage localStorage区别 cookie数据始终在同源的http请求中携带(即使不需要)&#xff0c;即cookie在浏览器和服务器间来回传递 cookie数据还有路径&#xff08;path&#xff09;的概念&#xff0c;可以限制。cookie只属于某个路径下 存储大小限制也不同&#…

RNAseq 流程

https://github.com/twbattaglia/RNAseq-workflow