博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中urldecode和urlencode的具体使用
阅读量:4295 次
发布时间:2019-05-27

本文共 1336 字,大约阅读时间需要 4 分钟。

1、urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符。

2、使用场景:公司项目(搜索条件的数据传输,从一个页面到另外一个页面):

//serialize将数组转化为字符串,不用implode是因为有关联数组,implode处理关联数组会出错,urlencode是保证将%等特殊符号原样传输v_set('where', urlencode($rs['where']));v_set('args', urlencode(serialize($rs['args'])));v_set('order', urlencode(serialize($rs['order'])));(1)防止中文乱码及特殊符号乱码,比如%77%78%这一字符串在传输时就会乱码,所以需要用urlencode进行特殊处理(2)回調地址,比如:例如一個接口,你傳送過去時,需要帶上你這邊的回調地址,也是個url. 這樣你不能url+url傳送,需要一個urlencode把回調地址編碼,防止發生問題.例如:微信的一個接口https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirectREDIRECT_URI 這裡應該填你的服務器回調地址.正常寫法如 http://api.baidu.com/callback.php那麼生成的接口就是https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://api.baidu.com/callback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect這樣訪問肯定出問題...那麼http://api.baidu.com/callback.php 這個回調地址,就要urlencode后再放到地址中發送.https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2Fapi.baidu.com%2Fcallback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect這樣傳就沒問題了!

3、注意事项:大部分(99%)的浏览器都会对传过来的值进行urlencode,同时$_GET$_REQUEST这些都会自动用urldecode解析浏览器传过来的值

转自:http://blog.csdn.net/qq_26291823/article/details/52994607

你可能感兴趣的文章
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>