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
533 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!

source:php.cn
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