Tach!
Die Parameter sind durch ein & getrennt. Das ist HTTP-Standard, keine PHP Erfindung.
?? An welcher Stelle standardisiert HTTP das
&
als Trennzeichen? In RFC 7231 §4.3.1 nicht. Auch RFC 3986 §3.4 und RFC 7320 §2.4 tun das nicht.Ansonsten wurde empfohlen,
;
statt&
als Trennzeichen zu verwenden (um das Escapen in HTML zu vermeiden), aber es hat sich niemand dran gehalten.
Diese Empfehlung stand bei HTML 4.01, jedoch nicht bei Form content types, sondern in einem Anhang. und wenn ich das richtig sehe, hat sie es nicht nach HTML 5 geschafft. Stattdessen steht da bei 4.10.21.6. URL-encoded form data nur ein Verweis auf die WHATWG, und dort ist zu finden: If tuple is not the first pair in tuples, then append U+0026 (&) to output.
Jedenfalls kennt PHP die ini-Einstellung arg_separator.input, die man auf ;&
setzen kann, um beides zu haben. Und wenn man selbst das ;
nimmt, muss man auch das &
gestatten, denn das verwenden die Browser von sich aus, wenn sie Formularwerte bei GET-Requests zusammenstellen. Da gibt es nichts, um ihnen zu sagen welche Zeichen sie verwenden sollen. Das ;
kann man nur nehmen, wenn man den Querystring selbst zusammenbaut.
dedlfix.