php解析url并得到url中的参数

1. 什么是 URL

URL(Uniform Resource Locator)即统一资源定位符,是互联网上用来描述和定位资源(如文档、图片等)的一种标识方式。一个 URL 通常包括以下几个部分:

协议类型(如 HTTP、FTP、TELNET 等)

服务器地址或域名(如 www.google.com)

端口号(如果访问的不是默认端口)

文件路径(如 index.html)

查询参数(即 URL 后面的 ?key1=value1&key2=value2)

2. URL 解析

在 PHP 中,我们可以使用一些内置函数来对 URL 进行解析,以获取其中的参数和值。

2.1. parse_url 函数

parse_url 函数可将一个 URL 解析成数组的形式,数组中包含了该 URL 的各个部分。

$url = "https://www.google.com/search?q=php+parse+url&oq=php+parse+url";

$parsed_url = parse_url($url);

print_r($parsed_url);

上面代码的输出结果如下:

{

"scheme": "https",

"host": "www.google.com",

"path": "/search",

"query": "q=php+parse+url&oq=php+parse+url"

}

可以看到,数组中的各个 key 就代表了 URL 的各部分。例如,上面的 "scheme" 代表协议类型,"host" 代表服务器地址,"query" 代表查询参数。

2.2. parse_str 函数

parse_str 函数可以将查询参数(即 URL 中?后面的部分)解析成数组的形式。

$query_string = "q=php+parse+url&oq=php+parse+url";

parse_str($query_string, $query_params);

print_r($query_params);

上面代码的输出结果如下:

{

"q": "php parse url",

"oq": "php parse url"

}

可以看到,parse_str 函数将查询参数解析成了一个关联数组。

3. 将 URL 参数转成数组

在 PHP 中,我们可以根据上面两个函数的结果,将 URL 中的各个参数解析成一个数组。

$url = "https://www.example.com/search?q=php+parse+url&filter=recent";

$parsed_url = parse_url($url);

parse_str($parsed_url['query'], $query_params); // 注意:$query_params 为引用传递

print_r($query_params);

上面代码的输出结果如下:

{

"q": "php parse url",

"filter": "recent"

}

可以看到,我们先用 parse_url 函数获取到了 URL 的各个部分,然后用 parse_str 函数将查询参数解析成了一个关联数组。这样,我们就可以方便地获取 URL 参数了。

后端开发标签