今天在看手册的时候,无意间看到这两个内置函数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
时间: 2024-10-13 07:40:54