php urlencode和rawurlencode的区别介绍

在php中rawurlencode与rawurlencode都是对字符进行编码的,下面我来给大家介绍urlencode和rawurlencode的区别,有需要了解的朋友可参考.

urlencode的用途就是编码字符串,把原字符串中所有除”-_”以为的非所有字母数字字符替换成百分号(%)后跟两位十六进制数,但是需要注意:由于历史原因会把空格替换+号.rawurlencode其实和urlencode一样,也是用来编码字符串的,唯一的不同是它是使用RFC1738 编码,也就是会把空格替换成%20.

它们对应的解码函数是urldecode和rawurldecode.参考官方网站的说明,urldecode解码给出的已编码字符串中的任何%##,加号(’+')被解码成一个空格字符;rawurldecode解码字符字符串中百分号(%)后跟两位十六进制.有两点区别,一是urldecode解码是对百分号(%)后任意两位字符都去会进行解码,例如%MN也会解码,但是会失败;rawurldecode则只会对百分号(%)后两位是十六进制(0-9A-F)的字符才会解码,二是urldecode会把+号解码为空格.

我们再看来两个函数在php官方的介绍吧.

urlencode — 编码 URL 字符串Report a bug 说明

string urlencode ( string $str )

此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页.Report a bug 参数str 要编码的字符串.

Report a bug 返回值

返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+).此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样.由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同.

实例代码如下:

  1. Example #1 urlencode() 例子 
  2. <?php 
  3. echo '<a href="mycgi?foo=', urlencode($userinput), '">'
  4. ?> 
  5.  
  6. Example #2 urlencode() 与 htmlentities() 例子 
  7. <?php 
  8. $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); 
  9. echo '<a href="mycgi?' . htmlentities($query_string) . '">'
  10. ?> 

rawurlencode — 按照 RFC 1738 对 URL 进行编码Report a bug 说明

string rawurlencode ( string $str )

根据 » RFC 3986 编码指定的字符.Report a bug 参数str 要编码的 URL.

Report a bug 返回值

返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数.这是在 » RFC 3986 中描述的编码,是为了保护原义字符以免其被解释为特殊的 URL 定界符,同时保护 URL 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱.

实例代码如下:

  1. Example #1 在 FTP URL 里包含一个密码 
  2. <?php 
  3. echo '<a href="ftp://user:', rawurlencode('foo @+%/'), 
  4.      '@ftp.example.com/x.txt">'
  5. ?>  

以上例程会输出:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">
通过上面对解码函数的描述,可以推论,使用urlencode或rawurlencode编码的都可以使用urldecode进行解码,但是如果原字符串中含有空格,使用urlencode编码后的字符串使用rawurlencode解码后获得的字符串会和原字符串不同.
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php urlencode和rawurlencode的区别介绍

48 评论

  1. generic arimidex Viagra 50 mg buy viagra sale

  2. acheter 40mg du cialis sildenafil 25mg prix acheter 200mg gГ©nГ©rique viagra en france

  3. buy clonidine 0.1mg online cheap generic catapres tiotropium bromide sale

  4. purchase tadalafil pill cost pyridium amantadine 100 mg drug

  5. purchase furosemide generic order lasix sale order plaquenil 200mg online cheap

  6. buy glucophage 1000mg without prescription cialis 5mg buy tadalafil 10mg generic

  7. professional paper writers essays writing sildenafil 100mg pills for men

  8. ranitidine cheap mobic 15mg uk celebrex 100mg for sale

  9. buy tadalafil 10mg pills cialis for men cheap viagra for sale

  10. sildenafil over counter sildenafil uk tadalafil 20mg for sale

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡