Hi
Für ein Wiki möchte ich dass Newsletterstyle-Zitate (Bsp:
>Mehrzeiliges
>Zitat
Antwort
so umgewandelt werde dass sie Nachher so aussehen.
Mein Bisheriger Ansatz funktioniert so dass er per RegEx das erste vorkommen von "\n>" bis zum ersten "\n[^>]" danach sucht, es an eine funktion weitergibt die dann den ganzen Block zu einem DIV umwandelt welches entsprechend (Newsletterstyle) formatiert ist. Das genze funktioniert rekursiv, damit man auch verschachtete Quotes machen kann. Der Code
funktioniert gut, hat aber Bugs. Zum Beispiel funktionieren 2 Newsletterquote hintereinander nicht (k.a. wieso). Deshalb meine Frage: Wie würdet ihr das Problem lösen (anderen Ansatz), oder habt ihr verbesserungen zu meiner Lösung?
MfG Luke
Für ein Wiki möchte ich dass Newsletterstyle-Zitate (Bsp:
>Mehrzeiliges
>Zitat
Antwort
so umgewandelt werde dass sie Nachher so aussehen.
Mein Bisheriger Ansatz funktioniert so dass er per RegEx das erste vorkommen von "\n>" bis zum ersten "\n[^>]" danach sucht, es an eine funktion weitergibt die dann den ganzen Block zu einem DIV umwandelt welches entsprechend (Newsletterstyle) formatiert ist. Das genze funktioniert rekursiv, damit man auch verschachtete Quotes machen kann. Der Code
Code:
$string = preg_replace("/(\n|^)(>.*)(\n([^>])|$)/Use", "parse_newsletterquote('\\1', '\\2', '\\4')", $string); function parse_newsletterquote($before, $string, $after) { $string = stripslashes($string); $string = preg_replace("/(\n|^)>/", "\\1", $string); $string = preg_replace("/(\n|^)(>.*)(\n([^>])|$)/Use", "parse_newsletterquote('\\1', '\\2', '\\4')", $string); return "<div style=\"padding-left:25px; background-image:url('images/newsletter_quote.gif'); background-repeat:repeat-y;\">".$string."</div>".$after; }
MfG Luke
Kommentar