PHP中有时候需要对URL进行解析,并返回一些关于URL信息的数据,虽然有很多方法可以实现,但在PHP中给我们提供了,一个简单的函数parse_url(),利用parse_url()这个函数,我们可以很轻松的解板一个函数,并做出相应的处理,那么今天飞鸟慕鱼的小编就说一说关于parse_url()函数的说明以及用法。

parse_url()函数说明

parse_url()函数:此函数可以解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。

注意:本函数不是用来验证给定 URL 的合法性的,只是将其分解成为数组(下在有实例说明)。不完整的 URL也可被接受,parse_url() 会尝试尽量正确地将其解析。

举例说明

利用parse_url()函数分解一个URL,并打印出被分解的部份

parse_url()函数使用代码

<?php
//飞鸟慕鱼博客
$test = parse_url("http://feiniaomy.com/index.php?name=tank&sex=1#top");
//打印这个数组
print_r($test);
?>

代码示意图

php中parse_url()函数使用与解析URL实例

代码动行结果

Array ( [scheme] => http [host] => feiniaomy.com [path] => /index.php [query] => name=tank&sex=1 [fragment] => top )

我们格式化一下这个运行结果,并标明每个元素所代表的意思

Array 
( 
    [scheme] => http  ////使用什么协议
    [host] => feiniaomy.com  //主机名
    [path] => /index.php //路径
    [query] => name=tank&sex=1 //提交的参数
    [fragment] => top //锚点
)

这样,是不是能很明显的看出,数组中每个参数的所代表的意思了呢?

如果不是很明白,我们可以换一种方式,来解析这个URL。

parse_url()函数解析URL的方法2

代码

<?php
//飞鸟慕鱼博客
$test ="http://feiniaomy.com/index.php?name=tank&sex=1#top";
echo "scheme:".parse_url($test,PHP_URL_SCHEME)."<br/>";
echo "host:".parse_url($test,PHP_URL_HOST)."<br/>";
echo "path:".parse_url($test,PHP_URL_PATH)."<br/>";
echo "query:".parse_url($test,PHP_URL_QUERY)."<br/>";
echo "fragment:".parse_url($test,PHP_URL_FRAGMENT)."<br/>";
?>

代码图示

php中parse_url()函数使用与解析URL实例

代码运行结果

scheme:http
host:feiniaomy.com
path:/index.php
query:name=tank&sex=1
fragment:top

parse_url()与parse_url()函数结合使用

一般我们利用parse_url()函数解析一个URL的时候,需要提取URL内要提交的参数,我们说用到了parse_url()函数来参数了。

关于parse_url()函数的使用,请参考《php使用parse_str实现查询字符串解析到变量中的方法

parse_url()parse_url()函数结合使用实例

代码

<?php
//飞鸟慕鱼博客
$test = parse_url("http://feiniaomy.com/index.php?name=tank&sex=1#top");
parse_str($test['query'],$parr);//获取URL中的参数,并赋值到$parr数组中
print_r($parr);//打印数组
?>

代码图示

php中parse_url()函数使用与解析URL实例

代码运行结果

Array ( [name] => tank [sex] => 1 )

通过上面的实例,大家是不是感觉通过parse_url()parse_url()函数结合使用,可以很方便的获取到一个已知带有参数的的URL中的参数呢?