Lieber RuD,
ich schlafe zwar schon fast, aber ich würde es simpler gestalten:
$tpl_source = preg_replace('~(<a href=".*[^?]+)(?:\?([^"]+))?"~', '\\1?\\2&'.SID, $tpl_source);
1. Parenthese enthält den Link mit Pfad (wird "behalten", ist \1)
2. Parenthese enthält den Search-String (wird wegen '?:' "vergessen")
3. Parenthese enthält den Inhalt des Search-Strings (wird "behalten", ist \2)
SID ist eine Konstante in PHP, die sowohl den Namen, als auch die ID der Session fix unde fertig für die URL enthält.
- ungeprüft -
Liebe Grüße aus Ellwangen,
Felix Riesterer.