PHP函数补完:urlencode()

将传入的字符串进行URL编码
服务器君一共花费了221.112 ms进行了7次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

URLEncode

urlencode函数将传入的字符串参数进行URL编码。其返回的字符串中除了“ˉ—.”之外,所有非字母数字字符都被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此函数便于将字符串编码并将其用于URL的请求部分,同时还便于将变量传递给下一页。

URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过 Encode过的网页URL。URLEncode的方式一般有两种一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),一种是 基于UTF-8的Encode(Google,Yahoo等使用)。本工具分别实现两种方式的Encode与Decode。

  • 中文 -> GB2312的Encode -> %D6%D0%CE%C4
  • 中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

Html中的URLEncode

编码为GB2312的html文件中,http://www.nowamagic.net/中文.rar -> 浏览器自动转换为 -> http://www.nowamagic.net/%D6%D0%CE%C4.rar

注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以。

编码为UTF-8的html文件中,http://www.nowamagic.net/中文.rar -> 浏览器自动转换为 -> http://www.nowamagic.net/%E4%B8%AD%E6%96%87.rar

PHP中的URLEncode:

<?php  
//GB2312的Encode  
echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+  
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.  
echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20  
echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.  
?>  

除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。

urlencode和rawurlencode的区别:

  • urlencode 将空格则编码为加号(+)
  • rawurlencode 将空格则编码为加号(%20)

如果要使用UTF-8的Encode,有两种方法:

  1. 将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。
  2. 使用mb_convert_encoding函数。
<?php  
$url = 'http://www.nowamagic.net/中文.rar';  
echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";  
echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";  
//http%3A%2F%2Fwww.nowamagic.net%2F%E4%B8%AD%E6%96%87.rar  
?>  

实例:

<?php  
function parseurl($url="")  
{  
	$url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));  
	$a = array("%3A", "%2F", "%40");  
	$b = array(":", "/", "@");  
	$url = str_replace($a, $b, $url);  
	return $url;  
}  
$url="ftp://ud03:password@www.nowamagic.net/中文/中文.rar";  
echo parseurl($url);  
//ftp://ud03:password@www.nowamagic.net/%D6%D0%CE%C4/%D6%D0%CE%C4.rar  
?>  

JavaScript中的URLEncode: %E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20,encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。

延伸阅读

此文章所在专题列表如下:

  1. PHP函数补完:get_magic_quotes_gpc()
  2. PHP函数补完:error_reporting()
  3. PHP函数补完:preg_match()
  4. PHP函数补完:urlencode()
  5. PHP函数补完:array_multisort()
  6. PHP函数补完:array_splice()
  7. PHP函数补完:isset()
  8. PHP函数补完:getenv()
  9. PHP函数补完:header()
  10. PHP函数补完:mysql_num_rows()
  11. PHP函数补完:list()
  12. PHP函数补完:mysql_query()
  13. PHP函数补完:mysql_fetch_array()
  14. PHP函数补完:number_format()
  15. PHP函数补完:explode()
  16. PHP函数补完:call_user_func()
  17. PHP函数补完:ImageCopyResamples()
  18. PHP函数补完:import_request_variables()
  19. PHP函数补完:parse_url()
  20. PHP函数补完:移除HTML标签strip_tags()
  21. PHP函数补完:输出数组结构与内容var_dump()
  22. PHP函数补完:var_export()
  23. PHP函数补完:判断变量是否为数字is_numeric()
  24. PHP函数补完:session_name()
  25. PHP函数补完:session_id()
  26. PHP函数补完:nl2br()与nl2p()函数
  27. PHP函数补完:shuffle()取数组若干个随机元素
  28. PHP函数补完:http_build_query()构造URL字符串
  29. PHP函数补完:stream_context_create()模拟POST/GET

本文地址:http://www.nowamagic.net/librarys/veda/detail/1076,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1076

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《致加西亚的信》 阿尔伯特·哈伯德(Hubbard.E.) (作者), 赵立光 (译者), 艾柯 (译者)

《致加西亚的信(经典盒装版)》内容简介:美西战争爆发以后,美国必须立即与古巴起义军首领加西亚取得联系,并获得他的合作。但当时,加西亚身在古巴的深山里——没有人知道他的确切地点,所以没法与他取得联系。这时,有人向总统推荐一个名叫罗文的人,说他有办法找到加西亚,而且也只有他才能找得到。他们找来罗文,交给他一封写给加西亚的信。三周后,罗文徒步走过一个危机四伏的国家,最终把那封信交给了加西亚。 此后,罗文的事迹被传为佳话,“送信”成为了敬业、忠诚、勤奋的象征,罗文便成了每个领导都想找到的人和每个员工都应该学习和效仿的榜样。

更多计算机宝库...