Plusieurs HTTP OBTENIR des paramètres avec le même identifiant
Disons que je reçois des demandes telles que:
http://www.example.com/index.php?id=123&version=3&id=234&version=4
Est-il possible d'extraire ces d'une manière simple à l'intérieur de mon code php? Je me rends compte que j'ai pu obtenir la totalité de la chaîne de requête avec javascript à l'aide de la fenêtre.emplacement.href et la poignée de main mais je suis à la recherche de quelque chose de plus élégant. La demande peut contenir n'importe quel nombre de version/id les paires, mais je peux supposer que la requête est bien formé et n'ont pas l'obligation de traiter les chaînes non valides.
Est-il possible de modifier la requête de la chaîne de format? comme
Alors que la chaîne de requête est construite par notre société de logiciels, l'application cliente a depuis longtemps été livrés et installés sur des milliers d'ordinateurs. La prochaine mise à jour de logiciels peuvent contenir des changements de la syntaxe, mais depuis cette fonctionnalité est liée à la mise à jour automatique du logiciel, il doit travailler avec l'état actuel de la querystrings.
C'est possible, voir ce post: stackoverflow.com/questions/353379/...
index.php?records[id][]=123&records[version][]=3&records[id][]=234&records[version][]=4
de sorte que vous pouvez les obtenir par $_GET["records"]["id"][0] #= 123
et $_GET["records"]["version"][0] #= 3
Alors que la chaîne de requête est construite par notre société de logiciels, l'application cliente a depuis longtemps été livrés et installés sur des milliers d'ordinateurs. La prochaine mise à jour de logiciels peuvent contenir des changements de la syntaxe, mais depuis cette fonctionnalité est liée à la mise à jour automatique du logiciel, il doit travailler avec l'état actuel de la querystrings.
C'est possible, voir ce post: stackoverflow.com/questions/353379/...
OriginalL'auteur MatsT | 2010-10-20
Vous devez vous connecter pour publier un commentaire.
Selon ce commentaire du manuel PHP, PHP chaîne de requête de l'analyseur se déposer en double params... donc je ne pense pas que PHP est un bon choix pour ce que vous voulez faire (sauf en ce qu'il a la même capacité que le javascript pour obtenir les cru de chaîne de requête, avec lequel vous pouvez faire ce que vous voulez)
Il y a un exemple de code pour une solution de contournement de la fonction dans ce commentaire, je vous remercie.
PHP prend en charge cette. Valeurs multiples querystring variables d'aller dans un tableau et peuvent être accessibles à partir de là. Pas de solution de rechange nécessaires. Pas un problème PHP.
Vous avez peut-être droit maintenant... ma réponse est près de cinq ans.
OriginalL'auteur Brian Driscoll
Si vous pouvez modifier le nom du champ pour inclure
[]
, puis PHP va créer un tableau contenant toutes les valeurs correspondantes:Si vous n'avez pas la possibilité de changer les noms des champs, puis comme vous le dites, vous devrez analyser la chaîne de requête vous-même.
id{}
changé àid[]
?Yup. Corrigé, merci.
Quelqu'un peut-il point à un endroit situé à php.net/manual/en/index.php lorsque cette fonction est documentée?
Il y a de la documentation ici: php.net/manual/en/faq.html.php#faq.html.arrays Il y a aussi la discussion de cette fonctionnalité dans le haut-voté utilisateur contribué note sur la documentation de $_POST:php.net/manual/en/reserved.variables.post.php
OriginalL'auteur Jacob Mattison
En supposant que vous avez un certain contrôle sur la demande, le suffixe du nom de
[]
et PHP va générer des tableaux au lieu de l'abandon de tous, mais un seul.Depuis qu'ils sont paires vous aurez probablement envie de fixer l'ordre où ils apparaissent dans l'utilisation d'index.
OriginalL'auteur Quentin
Il suffit d'extraire les clés et les valeurs des variables $_GET, utilisez la fonction:
... et le code de la fonction sera:
OriginalL'auteur Vitor Marques
Pas arrondies ou fiables que les méthodes mentionnées ci-dessus, mais je l'utiliser pour supprimer la nécessité d'
[]
dans l'url, sans se soucier de la réécriture.OriginalL'auteur atoms