如何从PHP中的URL字符串中提取查询参数?

2022-08-30 17:28:49

用户可以在我的网站上使用HTML表单输入URL,因此他们可以输入如下内容:http://www.example.com?test=123&random=abc,它可以是任何东西。我需要提取某个查询参数的值,在本例中为“test”(值123)。有没有办法做到这一点?


答案 1

您可以使用parse_urlparse_str,如下所示:

$query = parse_url('http://www.example.com?test=123&random=abc', PHP_URL_QUERY);
parse_str($query, $params);
$test = $params['test'];

parse_url允许将URL拆分为不同的部分(方案,主机,路径,查询等);在这里,我们用它来仅获取查询()。然后,我们可以使用parse_str来解析查询。test=123&random=abc


答案 2

我需要检查一个与我们系统相关的网址,所以我不能使用parse_str。对于任何需要它的人:

$urlParts = null;
preg_match_all("~[\?&]([^&]+)=([^&]+)~", $url, $urlParts);

推荐