Philippé: Reguläre Ausdrücke: HTML -> ubb-Tags

Beitrag lesen

Hallo,

ich habe folgenden Code gefunden, um in PHP die ubb-Tags in einem Text in HTML-Codes umzusetzen:

function ubb($text) {
        $tag['img'] = array('open'=>'<img src="','close'=>'">');
        $tag['b']   = array('open'=>'<b>','close'=>'</b>');
        $tag['i']   = array('open'=>'<i>','close'=>'</i>');
        $tag['u']   = array('open'=>'<u>','close'=>'</u>');
        $tag['url'] = array('open'=>'<a href="','close'=>'">\1</a>');

$stag['br'] = array('tag'=>'<br />');
        $stag['hr'] = array('tag'=>'<hr />');

foreach($tag as $tagname=>$replace) {
            $tagend = preg_replace('/\W/Ui','', $tagname);
            $text   = preg_replace("|[$tagname](.*)[/$tagend]|Ui","$replace[open]\1$replace[close]", $text);
        }

foreach($stag as $tagname=>$replace) {
            $text = preg_replace("|[$tagname]|Ui","$replace[tag]",$text);
        }

return $text;
    }

Funktioniert soweit wunderbar.
Mein Problem ist, dass ich mich kaum mit Regulären Ausrücken auskenne.
Jetzt bräuchte ich eine Funktion, die mir aus HTML-Tags ubb-Tags macht. D.h. aus <br /> wird [br]. Ich habe versucht, die ganze Sache umzudrehen, was aber nicht so ganz klappt. Z.B. funktioniert es mit dem XHTML-Schrägstrich wie z.B. in <hr /> nicht, da dort ein Leerzeichen enthalten ist.

Könnte mir da jemand auf die Schnelle helfen und ein Beispiel aufzeigen, wie ich es umwandeln kann?

Danke schon einmal im Voraus.

MfG