首页 > 代码库 > 如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)

如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)

今天在看手册的时候,无意间看到这两个内置函数parse_url和parse_str。看到他们的用法后,我突然想到能不能利用这两个函数来获得url地址中的参数。为了验证我的猜想,我就以如下url为例子:https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8

代码如下:

$url = ‘https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8‘;
$url_info = parse_url($url);
//print_r($arr);
parse_str($url_info[‘query‘],$query);
print_r($query);

这里我们先打印出$url_info这个数组的信息,如下图:

技术分享

如图我们看到返回四个信息:协议头,域名,路径,参数。这里我们再用parse_str函数处理参数。

打印出parse_str函数处理后的数组信息如下图:

技术分享

这样我们就获得了一个以参数名为键,参数值为值的一维关联数组。也证明了我的猜想正确。

通过这次我学到了如下PHP内置函数:

mixed parse_url ( string $url [, int $component = -1 ] )

解析 URL,返回其组成部分。返回值为一维关联数组,错误时返回FALSE。

第一个参数就是被解析的URL地址,第二个参数如果没有就返回数组,如果制定了,就返回指定的值。

例如:

技术分享

=======================================================================================================================

void parse_str ( string $str [, array &$arr ] )

将字符串解析成多个变量。没有返回值!

第一个参数为被解析的字符串,第二个参数为数组名(所有解析出来的信息会被保存到这个数组中一维关联数组)。

例子如下:

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output[‘first‘];  // value
echo $output[‘arr‘][0]; // foo bar
echo $output[‘arr‘][1]; // baz

 

如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)