Maison > développement back-end > tutoriel php > Comment récupérer toutes les valeurs des paramètres d'URL en double en PHP ?

Comment récupérer toutes les valeurs des paramètres d'URL en double en PHP ?

Barbara Streisand
Libérer: 2024-11-30 07:43:11
original
623 Les gens l'ont consulté

How to Retrieve All Values for Duplicate URL Parameters in PHP?

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

Problème :

Lorsque les URL contiennent plusieurs paramètres avec le même nom, la variable PHP $_GET renvoie uniquement la dernière valeur. Cela peut être problématique, notamment lorsque l'application nécessite l'accès à toutes les valeurs d'une clé donnée.

Solution :

Pour récupérer toutes les valeurs d'une clé donnée, ce qui suit le code peut être utilisé :

$query  = explode('&', $_SERVER['QUERY_STRING']);
$params = array();

foreach( $query as $param )
{
  // prevent notice on explode() if $param has no '='
  if (strpos($param, '=') === false) $param += '=';

  list($name, $value) = explode('=', $param, 2);
  $params[urldecode($name)][] = urldecode($value);
}
Copier après la connexion

Ce code :

  • Explore la chaîne de requête en valeur-clé individuelle paires.
  • Décode les noms de clé et de valeur.
  • Initialise un tableau associatif $params pour stocker les valeurs.
  • Ajoute ou ajoute des valeurs à la clé correspondante dans $params array.

Résultat :

L'exécution de ce code sur les paramètres d'URL fournis produit le tableau suivant :

array(
  'ctx_ver'     => array('Z39.88-2004'),
  'rft_id'      => array('info:oclcnum/1903126', 'http://www.biodiversitylibrary.org/bibliography/4323'),
  'rft_val_fmt' => array('info:ofi/fmt:kev:mtx:book'),
  'rft.genre'   => array('book'),
  'rft.btitle'  => array('At last: a Christmas in the West Indies.'),
  'rft.place'   => array('London'),
  'rft.pub'     => array('Macmillan and co.'),
  'rft.aufirst' => array('Charles'),
  'rft.aulast'  => array('Kingsley'),
  'rft.au'      => array('Kingsley, Charles'),
  'rft.pages'   => array('1-352'),
  'rft.tpages'  => array('352'),
  'rft.date'    => array('1871')
)
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal