Ich bin dabei ein BBCode für mein Programm zu erstellen. Dafür benutze ich eregi_replace();.
Damit mir die Text Daten um den BBCode herum nicht verloren gehen habe ich folgendes gemacht:
PHP-Code:
$TEXT = eregi_replace("(.*)\{b}(.*)\{/b}(.*)","\\1[b]\\2[/b]\\3",$TEXT);
Leider liest er das nur einmal aus. d.h. wenn ich zweimal den BBCode für Fett ({b}{/b}) benutze wird nur das letzte Vorkommen umgewandelt.
Was mich wundert, da der eigendlich den Text von vorne durch kämmt.
Weis jemand wieso der nur das letzte fett macht ob man das auch so stellen kann das man alle Vorkommen fett werden und kein Text verloren geht.
Der Code ist nur ein beispiel! Da auch [img] oder [url] sachen drin vorkommen werde ich nicht auf str_replace(); umsteigen.
PS: Hab nur {} verwendet weil bei [] wieder der BBCode vom Forum reingesprungen wäre.