在 Web 應用程式中,URL 通常包含多個參數以將資訊傳遞給 PHP 腳本。然而,PHP 的 $_GET 函數通常只會傳回給定參數的最後一個值。當 URL 中存在多個同名參數時,這可能會出現問題。
考慮以下範例 URL:
http://example.com/index.php?param1=value1¶m2=value2¶m1=value3
在這種情況下, $_GET['param1'] 將傳回“value3”,覆蓋先前的值(“value1”)。
要處理此問題,可以使用以下程式碼片段使用:
$query = explode('&', $_SERVER['QUERY_STRING']); $params = array(); foreach ($query as $param) { // To prevent errors, ensure each element has an equals sign. if (strpos($param, '=') === false) { $param .= '='; } list($name, $value) = explode('=', $param, 2); $params[urldecode($name)][] = urldecode($value); }
此程式碼將建立一個關聯數組,其中每個鍵對應一個參數名稱,每個值都是一個包含與該參數關聯的所有值的陣列。對於上面的範例URL,產生的$params 陣列將為:
array( 'param1' => array('value1', 'value3'), 'param2' => array('value2') )
透過使用此方法,您可以輕鬆存取與URL 中每個參數關聯的所有值,無論參數是否多次出現.
以上是如何從 PHP 中的 URL 檢索多個同名參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!