如何从PHP中的URLstring提取查询参数?

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

你可以像这样使用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(scheme,主机,path,查询等); 这里我们用它来得到只有查询( test=123&random=abc )。 然后我们可以用parse_strparsing查询。

我需要检查一个相对于我们系统的URL,所以我不能使用parse_str。 对于需要它的人:

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

主机名是可选的,但至less需要在参数string开头的问号:

 $inputString = '?test=123&random=abc&usersList[]=1&usersList[]=2' ; parse_str ( parse_url ( $inputString , PHP_URL_QUERY ) , $params ); print_r ( $params );