textarea benutzereingaben prüfen und umwandeln -> Regular Expressions & BBCode

iBook

Aktives Mitglied
Thread Starter
Dabei seit
31.05.2003
Beiträge
116
Reaktionspunkte
0
Hallo Forum,

nächstes Problem ;)

Ich habe eine textarea gefüllt mit daten aus einer tabelle, teilweise sind absätze per "<br>" gesetzt, teilweise per \n teilweise per \n\r , teilweise ist die schrift per "<b>" & "</b>" formatiert, links sind teilweise nur als "www.linkadresse.de" vorhanden, teilweise "http://www.linkadresse.de", teilweise per <a href="http://www.linkadresse.de">link</a>" teilweise per "[ url=http://www.linkadresse.de]link[/url ]", teilweise per "[ url]www.linkadresse.de[/url ]" und so weiter und so fort, jetzt würde ich gerne per "regular expressions" (?) den gesamten text auseinander nehmen, alle möglichkeiten abfrage und das ganze dann einheitlich formatieren, bevor es der user zu sehen kriegt...
und bei den RegExp liegt mein Problem, kennt jemand einen guten Workshop oder eine gute Seite, auf der Regular Expressions (am besten auf Deutsch) erklärt werden?

Bin für jeden Tipp dankbar!



MfG,

Michael

P.S.: falls jemand eine Fertige BBCode Klasse mit dazugehörigem Javascript (für Buttons, um dem Benutzer Arbeit abzunehmen) zur Hand hat, würde ich mich auch drüber freuen :D
 
Ich habe für ein Forum mal eine solche Datei entworfen. Das Prinzip ist recht einfach
und man kann es auf diverse Fälle anwenden - bedarf nur ein wenig Schreibarbeit, sämt-
liche Fälle zu erfassen.

PHP:
$_POST[message] = htmlentities($_POST[message],ENT_QUOTES);

$_POST[message] = ereg_replace("\r", "", $_POST[message]);
$_POST[message] = ereg_replace("\n", "<br>", $_POST[message]);

$_POST[message] = preg_replace("/\[b\](.*)\[\/b\]/iUms","<b>\\1</b>",$_POST[message]);
$_POST[message] = preg_replace("/\[i\](.*)\[\/i\]/iUms","<i>\\1</i>",$_POST[message]);
$_POST[message] = preg_replace("/\[u\](.*)\[\/u\]/iUms","<u>\\1</u>",$_POST[message]);
$_POST[message] = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<A href=\"\\0\" target=\"_blank\">\\0</A>", $_POST[message]);


Dies nur mal als Beispiel.
 
:mad:

Da sieht man z.B. gleich mal, wie sauber die Programmierer an diesem Forum bzgl. dieses
Themas gearbeitet haben ... die drei Zeilen, in denen der Text fett, kursiv oder unter-
strichen angezeigt wird, hat die BBCode Klasse dieses Forums interpretiert.

Eigentlich sollte es so aussehen:

bbcode.gif
 
danke, das hilft mir schonmal ganz gut weiter...


micha
 
Zurück
Oben Unten