Hallo,
also ich bin gerade dabei eine BB Code Engine zu verbessern.
Naja dabei bin ich jetzt auf ein Problem gestoßen, dass er den gleichen BB Code nicht innerhalb eines Tags "umwandelt".
Also wenn der User schreibt:
[quote]Orginal von xyz
[quote]Das habe ich nie gesagt[/quote]
Da ware ich doch dabei als du das gesagt hast[/quote]
Ach und wann war das??
Also dann soll er den Rahmen für das Zitat doppelt einfügen, so dass man ein Zitatrahmen in einem Zitatrahmen hat.
Meine Ersetzungsfunktion sieht so aus:
$zitat = "
<table align="center" width="98%">
<tr>
<td>Zitat:</td>
</tr>
<tr>
<td>\1</td>
</tr>
</table> ";
$text = preg_replace("/[QUOTE](.*?)[/QUOTE]/si", $zitat, $text);
Also bei normalen [quote]...[/quote] funktioniert das ohne Probleme, nur wenn da jetzt ein Zitat in einem Zitat steht, wird es wie folgt ersetzt:
<HTML Tags>Orginal von xyz
[quote]Das habe ich nie gesagt</HTML Tags>
Da ware ich doch dabei als du das gesagt hast
Bzw. wenn ich (.*) schreibe:
<HTML Tags>Orginal von xyz
[quote]Das habe ich nie gesagt[/quote]
Da ware ich doch dabei als du das gesagt hast</HTML Tags>
Also ich könnte jetzt da eine While Schleife rein machen:
while(eregi("[QUOTE](.*)[/QUOTE]",$text)) $text = preg_replace(...);
Das klappt dann, aber vielleicht weiß jmd. wie der Reguläre Ausdruck aussehen muss, dass er _jedes_ [quote] ersetzt?
Denn nur so kann man dazu lernen.
Oder ist das nicht möglich? Denn bei den Userkommentaren aus dem PHP Manual waren zwar auch BBCodes Scripts dabei, die hatten aber das gleiche Problem (bzw. die, die ich getestet habe)
MFG
Andavos