rawurlencode()和urlencode()函数区别
作者:会飞的
今天在阅读开源代码时发现了一个URL的编码函数:rawurlencode(),以前一直没有注意过,因为在平时的开发上主要使用的是 urlencode(),故专门研究了一番。
其实这两个函数的区别很简单,它们两个都会把URL中的非英文字符进行转义,替换成”%”后跟两位十六进制数,不同的是:rawurlencode 遵守是94年国际标准备忘录RFC 1738,对空格的转义是’%20′;而urlencode的编码实现的是传统做法,和POST表单数据一样会把空格转义成”+”号。
举个例子:
如果URL地址源的形式是:http://xinge360.com/php 编码区别
rawurlencode($url):
http%3A%2F%2xinge360.com%2FPHP%20%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B
urlencode($url):
http%3A%2F%2xinge360.com%2FPHP+%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B
从这个例子中可以很明显的看出二者的区别,如果我们想给编码的URL解码的话,可以使用这两个函 数:rawurldecode(),urldecode() 。在实际的开发中为了避免URL格式不统一,还是推荐大家使用rawurlencode()来进行URL的编码。
同样的操作在Javascript也有一些区别,大家可以参考:javascript的URL编码与反编码, 里面讲述了Javascript中escape(), encodeURI() ,encodeURIComponent()的编码使用
猜你喜欢
您可能感兴趣的文章:
- php 读取xml
- php工程师面试题
- PHP 二分法查找数据
- PHP 发送邮件
- PHPer程序员评“一个PHP程序员的价值”
- php程序员容易犯的10种错误
- php代码中去除空格和其他特殊符号
- PHP导出一个txt文本文件
- PHP的foreach循环
- PHP的运行原理 内幕:PHP是如何显示“你好世界”的?
- PHP面试题,PHP程序员面试题及答案
- php数组分页
- php四舍五入函数round()
- PHP中$_SERVER的详细参数与说明
- PHP中mysql_connect与mysql_pconnect的区别
- php中print_r、var_dump和var_export
- PHP中strtr和str_replace比较
- PHP中超时提示Fatal error Maximum execution time of 30 seconds exceeded的解决方案
- PHP中的stristr(),strstr(),strpos()速度比较