In Webanwendungen enthalten URLs oft mehrere Parameter, um Informationen an das PHP-Skript zu übergeben. Die $_GET-Funktion von PHP gibt jedoch normalerweise nur den letzten Wert für einen bestimmten Parameter zurück. Dies kann problematisch sein, wenn in der URL mehrere Parameter mit demselben Namen vorhanden sind.
Betrachten Sie diese Beispiel-URL:
http://example.com/index.php?param1=value1¶m2=value2¶m1=value3
In diesem Fall würde $_GET['param1'] zurückkehren „value3“ überschreibt den früheren Wert („value1“).
Um dieses Problem zu beheben, kann der folgende Codeausschnitt verwendet werden verwendet:
$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); }
Dieser Code erstellt ein assoziatives Array, in dem jeder Schlüssel einem Parameternamen entspricht und jeder Wert ein Array ist, das alle mit diesem Parameter verknüpften Werte enthält. Für die obige Beispiel-URL würde das resultierende $params-Array wie folgt aussehen:
array( 'param1' => array('value1', 'value3'), 'param2' => array('value2') )
Mit dieser Methode können Sie über die URL problemlos auf alle mit jedem Parameter verknüpften Werte zugreifen, unabhängig davon, ob die Parameter mehrmals vorkommen .
Das obige ist der detaillierte Inhalt vonWie rufe ich in PHP mehrere Parameter mit demselben Namen von einer URL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!