joene: String von $1 in preg_replace bearbeiten

Beitrag lesen

Hallo zusammen

Ich habe einen String in der Form

[TAG]Lorem ipsum etc.[/TAG]

Mithilfe des Codes
$str = preg_replace("/\[TAG\](.*)\[\/TAG\]/Um","<TAG $1 TAG>",$str);
bring ich ihn in die Form

<TAG Lorem ipsum etc. TAG>

Meine Frage: Wie kann ich es anstellen, dass ich den Text zwischen [TAG] un [/TAG], d.h. den Inhalt von $1, mithilfe einer Funktion, z.B. htmlspecialchars(), bearbeiten kann, bevor er an der Stelle von $1 eingefügt wird.
Ich habe versucht, es so zu lösen

$str = preg_replace("/\[TAG\](.*)\[\/TAG\]/Um","<TAG ".htmlspecialchars($1)." TAG>",$str);

was einen Fehler ausgibt (Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /home/www/web275/html/index.php on line 98) und auch so

$str = preg_replace("/\[TAG\](.*)\[\/TAG\]/Um","<TAG ".htmlspecialchars("$1")." TAG>",$str);

Hier wir aber der Funktion nur der String "$1" mitgegeben, d.h. er wird nicht ersetzt.

Gibt es eine Möglichkeit, dies ohne einen Umweg über explode() zu lösen?

Vielen Dank schon im Vorraus