Leider funktioniert es so nicht.
Das habe ich erwartet, dass es nicht auf Anhieb funktioniert.
Derlei Nachbearbeitungen brauchen Tests über reale und variierende Query-Strings.
Hier ist eine kleine Korrektur:
$out = preg_replace( /($var=$val$bind)($var=$val$bind)?\1/, $1 . $2, $in );
^^^
oder
$out = preg_replace( /($var=$val$bind)($var=$val$bind)?\1/, "$1$2", $in );
Da ich der RegEx nicht mächtig bin -
könntest Du mir kurz erklären was Du genau machst ... vielleicht kann ich
es dann bei mir zum Laufen bringen.
Gegenfrage:
Wo holst du diese URL mit Query String her?
Handelt es sich um eine Url, welche zusammengebastelt wurden um im HTML verwendet zu werden? In diesem Fall sind die & nicht HTML gerecht maskiert worden.
Auch bist du dann selbst verantwortlich, dass solches gar nicht erst entsteht.
Oder handelt es sich (was ich bezweifle), um den Query-String, der mit der Methode GET auf deinem Server ausgelesen werden kann?
Ich kenne Fälle, wo es erwünscht ist, dass auf dem Server nacheinander die verschiedene Werte zum gleichen Parameter ankommen.
mfg Beat