在PHP中有urlencode()、urldecode()、rawurlencode()、rawurldecode()这些函数来解决网页URL编码解码问题。
在ASP的时候URL编码解码很是恼火,Server.urlencode不太好用,遇到utf-8编码的地址更是麻烦。你要获取百度、Google点击到网站的网址链接中的关键字,要写上一堆自定义函数来得到urldecode的效果。
摘录一篇关于PHP urlencode()函数的文章,对PHP处理URL作全面了解,文章来自373ren排行13,感谢。
理解urlencode:
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.fufuok.com/中文.rar -> 浏览器自动转换为 -> http://www.fufuok.com/%D6%D0%CE%C4.rar
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是utf-8编码发送URL的,但是ftp://协议可以,应该算是Firefox一个bug。
编码为utf-8的html文件中:
http://www.fufuok.com/中文.rar -> 浏览器自动转换为 -> http://www.fufuok.com/%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,有两种方法:
一、将文件存为utf-8文件,直接使用urlencode、rawurlencode即可。
二、使用mb_convert_encoding函数。
<?php
$url = 'http://www.fufuok.com/中文.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.fufuok.com%2F%E4%B8%AD%E6%96%87.rar
?>
应用实例:
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://fufu:password@www.fufuok.com/中文/中文.rar";
echo parseurl($url);
//ftp://fufu:password@www.fufuok.com/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>
相关推荐
复制代码 代码如下:<?php $url = “https://www.jb51.net”; echo urlencode($url);... 您可能感兴趣的文章:PHP curl实现抓取302跳转后页面的示例PHP获取当前页面URL函数实例php获取当前页面完整URL
这个是 utf-8版本的 js实现 php的 urlencode() 和 urldecode()两个函数的功能。...在传送cookie的时候 在 php端实现 url编码 但要用 js来解码cookie的时候 就出现汉字不能不能识别的问题 这个 js 很好的解决
下面是详细解释:///\\\ string urlencode ( string str) 返回字符串,此字符串中除了 -_. 之外的所有非字母数字...此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页: 例子 1. url
如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址。下面的方法可以解决该问题: URL安全的字符串编码: 复制代码 代码如下: function urlsafe_b64encode($string) { $data = ...
就可以得到你需要的字串了,其中gb2312根据你实际应用来定如还不明白为什么看下面的文章 URL编码转换,escape() encodeURI() encodeURIComponent() 本文介绍对url编码的三种函数 escape() ,encodeURI
中文字符编码研究系列第五期,详解 urlencode()与urldecode()函数字符编码原理,两个函数分别用于编码 URL 字符串和解码已编码的 URL 字符串,实现对中文字符的编码
本文实例总结了几种在php中url编码解析函数,如parse_url、rawurldecode、rawurlencode、urldecode、urlencode.分享给大家供大家参考。具体用法如下: 下面来看介绍与实例:parse_url($str url); 把url转换成数组:...
您可能感兴趣的文章:PHP fopen 读取带中文URL地址的一点见解PHP中文URL编解码(urlencode()rawurlencode()php中解析带中文字符的url函数分享php中url传递中文字符,特殊危险字符的解决方法php下目前为目最全的CURL...
英文:https://github.com/happyfish100/libfast通用中文:http://www.fastken.com/ c从我的开源项目FastDFS和FastDHT中提取的通用函数库。 这个库非常简单和稳定。 一些功能被包装到php扩展中,例如fastcommon_ge
次第一次用smarttemplate这个模板,比smarty小巧了很多,但也有些不方便的地方。
php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解url编码语法: string urlencode(string str);返回值: 字符串函数种类: 编码处理例如: 复制代码 代码如下:<?php$ChineseName=”我的名字,是中文的...
//编码 $returnUrl = parse_str(base64_decode($returnUrl));//解码 或者 $returnUrl = base64_decode($returnUrl);//解码 //或者 //不知道为何, 上面第一种解码方式返回的是null, 求解 $returnUrl = base64_encode...
关于在ASP(Server.UrlEncode)、PHP(urlencode())函数编码结果,或是经过asp、php等动态语言直接写入COOKIES的中文字符,用JS读取的时候,都会碰到一个编码的问题,那就是最终字符串被urlencode编码了,而又时有...
本文主要介绍了PHP处理url字符串编码、解码与解析。下面进行详细的举例说明
在网站开发过程中,使用汉字传输会导致有时URL会出现乱码的问题,可通过urlencode对中文进行编码,然后再解码,避免出现乱码,此函数加密的字符串可通过php的urldecode进行解码
2.5.2 Base64 编码解码 2.6 本章小结 第3章 使用PHP创建动态页面 3.1 页面参数的传递 3.1.1 通过URL传递参数 3.1.2 通过表单传递参数 3.2 处理HTTP头信息 3.2.1 页面重定向 3.2.2 设定文件的过期时间 3.2.3 用户认证...
8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...
8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...