热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpurlencode和rawurlencode的区别介绍_PHP教程-php教程

phpurlencode和rawurlencode的区别介绍。在php中rawurlencode与rawurlencode都是对字符进行编码的,下面我来给大家介绍urlencode和rawurlencode的区别,有需要了解的朋友可参考。urlencode的用
在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())不同。

代码如下

Example #1 urlencode() 例子

echo '';
?>


Example #2 urlencode() 与 htmlentities() 例子

$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '
';
?>

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 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。

代码如下

Example #1 在 FTP URL 里包含一个密码

echo '';
?>
以上例程会输出:

通过上面对解码函数的描述,可以推论,使用urlencode或rawurlencode编码的都可以使用urldecode进行解码,但是如果原字符串中含有空格,使用urlencode编码后的字符串使用rawurlencode解码后获得的字符串会和原字符串不同。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/628888.htmlTechArticle在php中rawurlencode与rawurlencode都是对字符进行编码的,下面我来给大家介绍urlencode和rawurlencode的区别,有需要了解的朋友可参考。 urlencode的用...


推荐阅读
  • JavaScript 中引号的多层嵌套使用技巧
    本文详细介绍了在 JavaScript 编程中如何处理引号的多级嵌套问题,包括双引号、单引号以及转义字符的正确使用方法。 ... [详细]
  • 解决UIScrollView自动偏移问题的方法
    本文介绍了一种有效的方法来解决在使用UIScrollView时出现的自动向下偏移的问题,通过调整特定的属性设置,可以确保滚动视图正常显示。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 本文详细介绍了五种常用的PHP排序算法——冒泡排序、选择排序、插入排序、希尔排序和堆排序。每种算法都附有代码示例,并通过打印和延时操作来直观展示排序过程。欢迎指出任何错误。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 本文提供了处理WordPress网站中出现过多重定向问题的方法,包括检查DNS配置、安装SSL证书以及解决数据库连接错误等步骤。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了如何在 MongoDB 中使用正则表达式进行数据排除查询,特别关注了通过 $regex 和 $nin 操作符来过滤特定模式的数据。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
author-avatar
剧情归一_905
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有