Also bei mir läuft dein Code:
Code:
<?php
$text = '[amazon="Das ist der Text"]123456789[/amazon]';
echo $text . '
';
$uid = '56483';
$text = preg_replace("#\[amazon=\\\"(.*?)\\\"\](.*?)\[/amazon\]#si", "[amazon:$uid=\\\"\\1\\\"]\\2[/amazon:$uid]", $text);
echo $text;
?>
Die Ausgabe
[amazon="Das ist der Text"]123456789[/amazon]
[amazon:56483=\"Das ist der Text\"]123456789[/amazon:56483]
Ich würde dir aber empfehlen, für reguläre Ausdrücke nicht Doublequotes, sondern Hochkommas zu verwenden, da dann der reguläre Ausdruck besser lesbar wird (ich hasse Escapes
).