Nein, sollte man nicht.
ein weiteres ? nach dem Fragezeichen, aber vor einem # ... das gehört zum Parameter
http://xyz.de/index.php/?page=wasauchimmerfuereineseite?foo=bar&dsa=456#pos
protcol = http
login =
domain = xyz.de
port =
path = index.php/
param-name 1 = page
param-value 1 = wasauchimmerfuereineseite?foo=bar
param-name 2 = dsa
param-value 2 = 456
ancor = pos
Wenn jemand beim Zusammenbau der
URL einen Fehler gemacht hat, dann hat er Pech, aber es währe
grob fahrlässig, wenn man hier nun das zweite ? entgegen der Definition auch zum Trennen verwendet wird
Und die minimalste Kurzfassung des Standards hatte ich oben schon erwähnt.
> Wenn man die einzelnen Werte/Parameter nicht auswerten will, ansonsten noch den vorher extrahierten Parameterstring an & auftrennen und dann nochmal jeweils an den ersten = in Name und Value.
Zusätzllich gibt es dann noch die zwei Varianten der Codierung von
Unicode und Sonderzeichen, jeweils bei Path/Params/Anker das mit dem % und bei Domain das ACE-Zeugs für IDN (Umlautdomains). Bei Username/Passwort weiß ich die Kodierung grade nicht. (entweder nur
ASCII möglich der ich tendiere eher zum älteren %)
Aber das braucht man zum Zerlegen nicht, sondern nur zum Unwandeln in eine lesbare Form, denn das ist gerade dafür da, dass die ersten Trenn-Regeln nicht konterminiert werden und weiterhin gelten, auch wenn entsprechende Zeichen in der
URL vorkommen.