Fehler im BBCode und ich finde ihn nicht

Prophet05

Erfahrenes Mitglied
Ich habe mir folgend RegExp Pattern für die BBCodes Color und Font einfallen lassen. Aber sie Funktionieren nicht und ich finde den Fehler auch nicht. Könnt ihr mir sagen wo der Fehler liegt?
Code:
$pattern_color = '!\[color=(#[0-9a-f]{6})\](.*)\[/color\]!iU';
 $pattern_font =  '!\[font=([0-9a-z -_/\.]+)\](.*)\[/font\]!iU';
 
 $replace_color = '<span style="color:$1;">$2</span>';
 $replace_font = '<span style="font-family:$1:">$2</span>';

Wo ist der Fehler?

MfG Prophet05
 
PHP:
<?
  $text = '[ color=#FF0000 ]Red[ /color ]';
  $text = preg_replace("/\[ color=(.*?) \](.*?)\[\ /color \]/si", "<font color=\"\\1\">\\2</font>", $text);
  echo $text;
?>
 
Mal eine Frage nebenbei: Wieso verwenden eigentlich fast alle diesen „BBCode“ mit den eckigen Klammern, obwohl auch nomales HTML möglich wäre?
 
Weil manmit HTML viel mehr e bauen kann. Ausser dem ist es um einiges schwerer einge HTML befehle stehen zu lassen andere dafür aber nicht. Da ersetzt man doch lieber diesen BBCode.

MfG Prophet05
 
Ich halte das alles etwas für überflüssige „Wichtigtuerei“. Solange das System gut abgesichert ist, sollte es kein Problem sein auch HTML-Tags zu erlauben.
 
Angenommen jemand ist so schlau und schreibt
Code:
<META HTTP-EQUIV=Refresh CONTENT="1; URL=http://www.domain.de/akuellteSeite.php">

das würde jetzt einen kleinen dauerrefresh geben, oder?

um sowas zu verhindern nutzt man BBCode.
Ich würde allerdings gleich nocht einen Schritt weiter gehen und WYSIWYG einsetzen!

Greatz
 
„Solange das System gut abgesichert ist, sollte es kein Problem sein auch HTML-Tags zu erlauben.“

Es war nie die Rede davon wirklich alles zuzulassen. Natürlich wird es ein paar Sicherheits- und Validierungsvorkehrungen geben. So sollte es auch nicht möglich sein, Block-Elemente innerhalb von Inline-Elemente einzusetzen – wie es hier beispielweise möglich ist.
 
Zurück