Mehrere HTTP-GET-Parameter mit dem gleichen Bezeichner
Sagen wir, ich bin immer Anfragen wie:
http://www.example.com/index.php?id=123&version=3&id=234&version=4
Ist es möglich, zu extrahieren, diese in einfacher Weise in meinem php-code? Ich merke, ich könnte Holen Sie sich die komplette querystring mit javascript und window.Lage.href und mit manuell, aber ich bin auf der Suche nach etwas eleganter. Die Anfragen können eine beliebige Anzahl von version/id-Paare, aber ich kann davon ausgehen, dass die Abfrage gut ausgebildet und haben keine Verpflichtung, mit ungültigen Zeichenfolgen.
Ist es möglich, ändern Sie die Abfrage-string-format? wie
Während der querystring ist konstruiert durch unsere Unternehmens-software, die client-Anwendung hat schon längst geliefert und installiert auf tausenden von Computern. Mit dem nächsten update der software enthalten kann, die änderungen an der syntax, aber da diese Funktionalität ist in Bezug auf die automatischen updates der software, die es braucht, um die Arbeit mit dem aktuellen Stand der Abfragezeichenfolgen.
Dies ist möglich, siehe dieser Beitrag: stackoverflow.com/questions/353379/...
index.php?records[id][]=123&records[version][]=3&records[id][]=234&records[version][]=4
so dass Sie könnte bekommen Sie, indem Sie $_GET["records"]["id"][0] #= 123
und $_GET["records"]["version"][0] #= 3
Während der querystring ist konstruiert durch unsere Unternehmens-software, die client-Anwendung hat schon längst geliefert und installiert auf tausenden von Computern. Mit dem nächsten update der software enthalten kann, die änderungen an der syntax, aber da diese Funktionalität ist in Bezug auf die automatischen updates der software, die es braucht, um die Arbeit mit dem aktuellen Stand der Abfragezeichenfolgen.
Dies ist möglich, siehe dieser Beitrag: stackoverflow.com/questions/353379/...
InformationsquelleAutor MatsT | 2010-10-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut dieser Kommentar aus dem PHP-Handbuch, PHP query string parser drop duplizieren params... also ich glaube nicht, dass PHP eine gute Passform für das, was Sie wollen, zu tun (außer, dass es hat die gleiche Kapazität wie javascript, um die raw-query-string, mit dem Sie das tun können, was Sie wollen)
Es gibt ein code-Beispiel für eine workaround-Funktion, in diesem Kommentar, danke.
PHP unterstützt. Mehrwertige querystring-Variablen gehen in einem array gespeichert und können von dort abgerufen. Keine Abhilfe erforderlich. Kein PHP-problem.
Sie mögen Recht haben jetzt... meine ursprüngliche Antwort ist fast fünf Jahre alt.
InformationsquelleAutor Brian Driscoll
Wenn Sie können, ändern Sie das Feld name enthalten
[]
, dann wird PHP erstellen Sie ein array, das alle gefundenen Werte:Wenn Sie nicht die Möglichkeit haben, ändern Sie den Feldnamen, dann, wie Sie sagen, haben Sie, um eine Analyse der querystring selbst.
id{}
geändertid[]
?Yup. Behoben, danke.
Kann jemand Punkt zu einem Platz auf php.net/manual/en/index.php wo die Funktion dokumentiert ist?
Es gibt die Dokumentation hier: php.net/manual/en/faq.html.php#faq.html.arrays Gibt, ist auch die Diskussion dieser Funktion in die top-stimmten user contributed Hinweis auf die Dokumentation von $_POST:php.net/manual/en/reserved.variables.post.php
InformationsquelleAutor Jacob Mattison
Vorausgesetzt, Sie haben einige Kontrolle über den Antrag, suffix den Namen mit
[]
wird PHP arrays erzeugen statt ihn zu löschen alle außer einem.Da Sie Paare Sie werden wahrscheinlich wollen, um zu beheben die Reihenfolge in der Verwendung von Indizes.
InformationsquelleAutor Quentin
Nur extrahieren Sie die Schlüssel und Werte von $_GET, verwenden Sie die Funktion als:
... und die Funktion code:
InformationsquelleAutor Vitor Marques
Nicht so abgerundet oder zuverlässig, wie die oben genannten Methoden aber ich benutze diese entfernen zu müssen
[]
in urls, ohne sich Gedanken über das umschreiben.InformationsquelleAutor atoms