Hi.
Die Funktion preg_replace in Delphi sähe in Pseudocode etwa so aus:
Code:
function preg_replace(pattern, replacement, subject: string; limit: integer = MAXINT): string;
begin
while (pattern in subject) do
ersetze pattern durch (ersetze '\\x' in replacement durch (inhalt von Klammer x in pattern))
end
Dabei ist zu beachten, dass Replacement KEIN Var-Parameter ist!
Code:
$caption = preg_replace("#\{([a-z0-9\-_]*?)\}#is", $template->_tpldata['.'][0]['\\1'], $caption)
ersetzt \{([a-z0-9\-_]*?)\} durch $template->_tpldata['.'][0]['\\1'] die \\1 heißt in diesem Falle wirklich \\1 und nicht (hier gefundenen Text einsetzen).
So geht's (hoffentlich) besser: (ungetestet)
Code:
$caption = preg_replace("#\{([a-z0-9\-_]*?)\}#is", "{$template->_tpldata['.'][0]['\\1']}", $caption)
(uff...)