簡體   English   中英

如何從PHP中的URL字符串提取查詢參數?

[英]How do I extract query parameters from a URL string in PHP?

用戶可以在我的網站上使用HTML表單輸入URL,因此他們可以輸入以下內容: 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拆分為不同的部分(方案,主機,路徑,查詢等); 在這里,我們使用它僅獲取查詢( test=123&random=abc )。 然后,我們可以使用parse_str解析查詢。

我需要檢查一個相對於我們系統相對的url,所以我不能使用parse_str。 對於任何需要它的人:

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

主機名是可選的,但至少在參數字符串開頭必須是問號:

$inputString = '?test=123&random=abc&usersList[]=1&usersList[]=2' ;

parse_str ( parse_url ( $inputString , PHP_URL_QUERY ) , $params );

print_r ( $params );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM