fmeyer84
Mitglied
Hallo,
mit folgender Funktion lese ich formatierungen aus einem Text (in DB gespeichert):
Verwende ich im Text zweimal die gleichen BBCodes, so wird auf einmal der ganze Text so dargestellt, wie der BBCode gewählt wurde (z.B. kursiv)... Komisch oder? Die BBCodes werden auch immer korrekt geschlossen, daran kann es also nich liegen.
Hat jemand Hilfe?
Grüße,
Fabian
mit folgender Funktion lese ich formatierungen aus einem Text (in DB gespeichert):
PHP:
function bbcode($text)
{
$text = stripslashes($text);
$text = preg_replace("/\[fett\](.*?)\[\/fett\]/isU","<b>$1</b>", $text);
$text = preg_replace("/\[kursiv\](.*?)\[\/kursiv\]/isU","<i>$1</i>", $text);
$text = preg_replace("/\[underline\](.*?)\[\/underline\]/isU","<u>$1</u>", $text);
$text = preg_replace("/\[center\](.*?)\[\/center\]/isU","<center>$1</center>", $text);
$text = preg_replace("/\[url\](.*)\[\/url\]/isU", "<a href=\"$1\" target=\"_blank\">$1</a>", $text);
$text = preg_replace("/\[email\](.*)\[\/email\]/isU", "<a href=\"mailto:$1\">$1</a>", $text);
$text = preg_replace("/\[img\](.*)\[\/img\]/isU", "<img src=\"$1\" />", $text);
$text = preg_replace("/\[code\](.*)\[\/code\]/isU", "<pre>$1</pre>", $text);
$text = preg_replace("/\[color=red\](.*)\[\/color\]/isU", "<font color=\"red\">$1</font>", $text);
$text = preg_replace("/\[color=blue\](.*)\[\/color\]/isU", "<font color=\"blue\">$1</font>", $text);
$text = preg_replace("/\[color=green\](.*)\[\/color\]/isU", "<font color=\"green\">$1</font>", $text);
$text = preg_replace("/\[color=yellow\](.*)\[\/color\]/isU", "<font color=\"yellow\">$1</font>", $text);
$text = preg_replace("/\[size=1\](.*)\[\/size\]/isU", "<font size=\"1\">$1</font>", $text);
$text = preg_replace("/\[size=2\](.*)\[\/size\]/isU", "<font size=\"2\">$1</font>", $text);
$text = preg_replace("/\[size=3\](.*)\[\/size\]/isU", "<font size=\"3\">$1</font>", $text);
$text = preg_replace("/\[size=4\](.*)\[\/size\]/isU", "<font size=\"4\">$1</font>", $text);
$text = str_replace("&","&",$text);
/* Smilies */
$text = str_replace(":)","<img src=\"images/smilies/smile.gif\" />",$text);
$text = str_replace(":-)","<img src=\"images/smilies/smile.gif\" />",$text);
$text = str_replace(":D","<img src=\"images/smilies/biggrin.gif\" />",$text);
$text = str_replace(":-D","<img src=\"images/smilies/biggrin.gif\" />",$text);
$text = str_replace(";)","<img src=\"images/smilies/wink.gif\" />",$text);
$text = str_replace(";-)","<img src=\"images/smilies/wink.gif\" />",$text);
$text = str_replace(":o","<img src=\"images/smilies/eek.gif\" />",$text);
$text = str_replace(":-o","<img src=\"images/smilies/eek.gif\" />",$text);
$text = str_replace(":?:","<img src=\"images/smilies/confused.gif\" />",$text);
$text = str_replace(":(","<img src=\"images/smilies/frown.gif\" />",$text);
$text = str_replace(":-(","<img src=\"images/smilies/frown.gif\" />",$text);
$text = str_replace(":p","<img src=\"images/smilies/tongue.gif\" />",$text);
$text = str_replace(":-p","<img src=\"images/smilies/tongue.gif\" />",$text);
$text = nl2br($text);
return $text;
}
Verwende ich im Text zweimal die gleichen BBCodes, so wird auf einmal der ganze Text so dargestellt, wie der BBCode gewählt wurde (z.B. kursiv)... Komisch oder? Die BBCodes werden auch immer korrekt geschlossen, daran kann es also nich liegen.
Hat jemand Hilfe?
Grüße,
Fabian