Maison >développement back-end >tutoriel php >Comment récupérer plusieurs paramètres avec le même nom à partir d'une URL en PHP ?

Comment récupérer plusieurs paramètres avec le même nom à partir d'une URL en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 04:26:11114parcourir

How to Retrieve Multiple Parameters with the Same Name from a URL in PHP?

Récupération de plusieurs paramètres portant le même nom à partir d'une URL en PHP

Dans les applications Web, les URL contiennent souvent plusieurs paramètres pour transmettre des informations au script PHP. Cependant, la fonction $_GET de PHP renvoie généralement uniquement la dernière valeur d'un paramètre donné. Cela peut être problématique lorsque plusieurs paramètres portant le même nom sont présents dans l'URL.

Considérez cet exemple d'URL :

http://example.com/index.php?param1=value1&param2=value2&param1=value3

Dans ce cas, $_GET['param1'] renverrait "value3", en écrasant la valeur précédente ("value1").

Pour résoudre ce problème, l'extrait de code suivant peut être utilisé :

$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);
}

Ce code créera un tableau associatif où chaque clé correspond à un nom de paramètre, et chaque valeur est un tableau contenant toutes les valeurs associées à ce paramètre. Pour l'exemple d'URL ci-dessus, le tableau $params résultant serait :

array(
    'param1' => array('value1', 'value3'),
    'param2' => array('value2')
)

En utilisant cette méthode, vous pouvez facilement accéder à toutes les valeurs associées à chaque paramètre à partir de l'URL, que les paramètres apparaissent plusieurs fois ou non. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn