PHP函数-解析URL地址字符串
在网页开发中,经常会需要对URL地址进行解析,比如获取GET参数、获取域名、获取路径等等。PHP提供了一系列函数可以方便地进行URL解析。
1. parse_url()
parse_url()函数用于解析URL字符串,返回一个关联数组,包括scheme、host、port、user、pass、path、query、fragment等元素。
例如,一个URL地址为:
https://www.baidu.com/s?wd=php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80
使用parse_url()可以得到以下结果:
Array
(
[scheme] => https
[host] => www.baidu.com
[path] => /s
[query] => wd=php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80
)
代码如下:
$url = "https://www.baidu.com/s?wd=php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80";
$arr = parse_url($url);
print_r($arr);
2. parse_str()
parse_str()函数将URL查询字符串解析成变量和值,并存储在$_GET数组中。
例如,一个URL地址为:
https://www.baidu.com/s?wd=php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80
使用parse_str()可以得到以下结果:
Array
(
[wd] => php解析地址
)
代码如下:
$url = "https://www.baidu.com/s?wd=php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80";
parse_str(parse_url($url)['query'], $_GET);
print_r($_GET);
3. urlencode()
urlencode()函数将字符串编码为URL安全的格式,将特殊字符转换为%xx格式。
例如,将一个字符串"php解析地址"编码成URL安全格式可以得到"php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80"。
代码如下:
$str = "php解析地址";
$str_safe = urlencode($str);
echo $str_safe;
4. urldecode()
urldecode()函数解码已编码的字符串。
例如,将"php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80"解码成"php解析地址"。
代码如下:
$str_safe = "php%E8%A7%A3%E6%9E%90%E5%9C%B0%E5%9D%80";
$str = urldecode($str_safe);
echo $str;
总结
在PHP中,parse_url()、parse_str()、urlencode()和urldecode()等函数可以方便地解析URL地址字符串。对于网页开发人员来说,学习使用这些函数可以更好地进行URL解析,帮助我们更高效地完成开发工作。
