2020-01-28T14:59:17
styx-ccDen Querystring kannst du doch per Hand splitten.
Da ich die selbe Aufgabe auch mal lösen musste (ist schon Jahre her), noch ein paar Hinweise:
- Manchmal sind die Query-Parameter nicht mit &, sondern mit ; voneinander getrennt. Das ist eine W3C-Empfehlung, damit die &-Zeichen ohne HTML-Escaping in href-Attribute gesteckt werden können. Solche Query-Strings werden auch von CGI erzeugt.
- Ein Leerzeichen in einem Query-Parameter kann als + oder als %20 repräsentiert werden. Manche Zeichen müssen, aber alle können auch als Prozent-Escapes in einen Query-String geschrieben werden. Wenn so etwas vorkommen kann, muss man die URI nach dem Aufspalten durch uri_unescape (aus URI::Escape) schicken.
- Wenn Du ganz böse Testfälle hast, dann musst Du vor dem uri_unescape Namen und Wert der Variablen voneinander trennen, denn tatsächlich ist nicht verboten, dass der Name ein Gleichheitszeichen enthält: <input type="text" name="a=b" value="c" /> ergibt einen Query-String a%3Db=c, das ist eine andere Query als <input type="text" name="a" value="b=c" /> mit dem Query-String a=b%3Dc.
- Und natürlich kann ein Parameter auch mehrfach vorkommen: foo=bar&foo=baz. Diesen Fall löst die Lösung von styx-cc schon.