mmofacts.com

BBCode ??

gepostet vor 17 Jahre, 2 Monate von Startego
Hi,
irgendwie hab ich einen denkaussetzer oder Fehler, wills mir auch vlt zu einfach machen.
Ich habe in meinem BG eine Beschreibungsfunktion und möchte in dieser einen BBCode nutzen. Heisst der User soll selber an der Darstellung basteln können. Natürlich will ich kein HTML code zulassen sondern nur ein paar bestimmte Sachen wie z.B.:
BBCode
fett

kursiv
unterstrichen
[c]zentriert[/c]
in HTML wäre das ja:
fett

kursiv
unterstrichen
zentriert
Jetzt besteht natürlich die Möglichkeit bei der auslese und einlese der Beschreibung immer dieBBCode Strings mit dem HTML-Code zu ersetzen. Das wäre das was ich mir gedacht habe.
Nun meine Frage. So oft wie der BBCode verwendet wird müsste es da nicht in PHP bereits vorgefertigte Funktionen geben? Oder wenn ihr bei euch einen BBCode nutzt wie habt ihr das gemacht?
gepostet vor 17 Jahre, 2 Monate von raufaser
1. www.christian-seiler.de/projekte/php/bbcode/
2. www.php.net/preg_replace
zu 1: Erster Treffer bei Google nach "bbcode php class"
zu 2: Wenn du es selbst machen möchtest, dann ist das dein Befehl, z.B.:

$repl = array( "/\[b\](.*)\[\/b\]/Ui" => "$1", "/\[i\](.*)\[\/i\]/Ui" => "$1", "/\[u\](.*)\[\/u\]/Ui" => "$1" );
$text = preg_replace( array_keys( $repl ), array_values( $repl ), $text );

Marc
gepostet vor 17 Jahre, 2 Monate von Startego
was beudet denn dieses (.*) und wieso steht da $1.
(.*) heisst wohl noch text dazwischen der einfach übernommen wird? und wieso übernimmt der kein zeilenumbruch?
gepostet vor 17 Jahre, 2 Monate von raufaser
Wenn's über mehrere Zeilen gehen soll, solltest du als Modifier "Uis" statt nur "Ui" verwenden.
Ließ dich mal in Regular Expressions ein:
www.php.net/regex
www.php.net/preg_replace
Edit:
$1 bedeutet, das der Inhalt aus der ersten geklammerten Suchbedingung genommen wird. $2 wäre dann der gefundene Inhalt der zweiten Klammer usw... aber wir haben ja nur eine Klammer, von daher passt.
"." bedeutet: Jedes Zeichen erzeugt einen Treffer
"*" bedeutet: kein oder mehrere Vorkommen
"+" hingegen: ein oder mehrere Vorkommen
Das ist jetzt natürlich nur recht oberflächlich erklärt...
Gruß,
Marc
gepostet vor 17 Jahre, 2 Monate von Startego
Cool danke alles verstanden :-)
gepostet vor 17 Jahre, 2 Monate von knalli
Beachte, dass b und i in HTML den Status deprecated haben; strong und em sind da vorzuziehen. Also, das funktioniert weiterhin mit b und i, aber wenn du valides HTML bauen willst (Doctype?), dann solltest du das beachten.
Da du den Parser ja selber schreibst, kannst du das ja nach Belieben jederzeit ändern
gepostet vor 17 Jahre, 2 Monate von raufaser
Da hat knalli natürlich Recht, ich hab b und i auch nur genommen, weil's kürzer zu tippen war...
gepostet vor 17 Jahre, 1 Monat von Biki
Gibt mit

Auch keinerlei Probleme.

Auf diese Diskussion antworten