旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

【PHP】简述urlencode和rawurlencode的不同点【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:115


导读:本文重要报告的是PHP中urlencode和rawurlencode的差别点,有肯定的参考价值,感兴趣的朋侪能够相识一下。事宜背景:听大牛说,之前做h5小游戏,须要后端...
本文重要报告的是PHP中urlencode和rawurlencode的差别点,有肯定的参考价值,感兴趣的朋侪能够相识一下。

事宜背景:

听大牛说,之前做h5小游戏,须要后端输出用户的相干信息给前端,输出的内容有:用户id,用户昵称等字段,运用get体式格局传参。后端运用PHP语言对中文昵称举行花样化编码,运用的是经常使用的urlencode函数。

出现问题:

运用urlencode这个函数举行花样化,urlencode函数会把空格编码为:+

固然,前端在吸收时能够解码后举行替代 + 为空格的体式格局处置惩罚。然则如许就多做了一步,很贫苦,有的时刻我们的数据接口是开发给第三方或许其他运用的,他们在处置惩罚中不肯定完整根据如许的思绪来做。

比方前端是用Python吸收,直接解码后显现,昵称就会有 + 号了。

解决方案:

运用rawurlencode

在PHP中,urlencode把空格编码为+号,rawurlencode把空格编码为%20

PHP Manual两个函数的申明:

urlencode: 返回字符串,返回字符串,此字符串中除了 -_. 以外的一切非字母数字字符都将被替代成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码体式格局是一样的,同时与 application/x-www-form-urlencoded 的媒体范例编码体式格局一样。因为汗青缘由,此编码在将空格编码为加号(+)方面与 RFC1738 编码(拜见 rawurlencode())差别。

rawurlencode返回字符串,此字符串中除了 -_. 以外的一切非字母数字字符都将被替代成百分号(%)后跟两位十六进制数。这是在 RFC 1738 中形貌的编码,是为了庇护原义字符以避免其被解释为特别的 URL 定界符,同时庇护 URL 花样以避免其被传输媒体(像一些邮件系统)运用字符转换时弄乱。

所以,在运用PHP传中文编码时,用rawurlencode

相干课程:PHP视频教程

以上就是【PHP】简述urlencode和rawurlencode的差别点的细致内容,更多请关注ki4网别的相干文章!

标签:PHPurlencoderawurlencode区别