In einem Forum gibt es die Möglichkeit eigene Befehle einzugeben. So kann ein User zum Beispiel [zitat]Text[/zitat] eingeben. Alles was nun zwischen [zitat] und [/zitat] steht, wird nun formatiert und eingrückt dargestellt.
Dies habe ich folgendermaßen gemacht:
PHP-Code:
$regex='$([zitat])((?s).+)([/zitat])$i'
$ersatz='<blockquote>$2</blockquote>';
echo preg_replace($regex, $ersatz, $text);
Das funktioniert soweit auch ganz gut. Ein Problem tritt aber auf, wenn nun ein Benutzer einen Beitrag zitiert, in dem bereits ein Zitat vorhanden ist, was dann bei der Eingabe in etwa so aussieht:
[zitat]text den ich zitiere[zitat]eingebettetes zitat[/zitat] weiterer text, den ich zitiere[/zitat]
Dann werden nur das erste [zitat] und das letzte [/zitat] umgewandelt. Die beiden dazwischen jedoch nicht.
Meine Frage ist nun, wie man auch das eingebettete Zitat entsprechend darstellen lassen kann.