php bbcode
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Ich benutze in meinem CMS BBCodes. Diese habe ich mit prog_replace_all() (oder so ähnlich) realisiert. Es wird aber nur der erste BBCode angezeigt, wenn ich mehrere gleiche hintereinander habe. Kann mir jemand helfen?
EDIT:
Der Code:
<?php function bbcode($text) { $text = htmlentities($text); $text = preg_replace('#\[i\](.*)\[/i\]#isU', "<i>$1</i>", $text); $text = preg_replace('#\[b\](.*)\[/b\]#isU', "<b>$1</b>", $text); $text = preg_replace('#\[u\](.*)\[/u\]#isU', "<u>$1</u>", $text); $text = preg_replace('#\[del\](.*)\[/del\]#isU', "<s>$1</cs>", $text); $text = preg_replace('#\[quote\](.*)\[/quote\]#isU', "<blockquote><cite>$1</cite></blockquote>", $text); $text = preg_replace('#\[url\](.*)\[/url\]#isU', "<a href=\"$1\">$1</a>", $text); $text = preg_replace('#\[url=(.*)\](.*)\[/url\]#isU', "<a href=\"$1\">$2</a>", $text); $text = preg_replace('#\[code\](.*)\[/code\]#isU', "<div class=\"code\">$1</div>", $text); $text = preg_replace( "#\[youtube\]http://www.youtube.com/watch?v=(.+?)\[/youtube\]#isU", '<embed src="http://www.youtube.com/v/\\1" type="application/x-shockwave-flash" wmode="transparent" width="512" height="313" allowfullscreen="true" />', $text); $text = str_replace(':-)', '<img src="http://www.greensmilies.com/smile/smiley_emoticons_smile.gif" alt="Smiley">',$text); $text = str_replace(':-(', '<img src="http://www.greensmilies.com/smile/smiley_emoticons_nosmile.gif" alt="Smiley">',$text); return $text; } ?>
Beitrag zuletzt geändert: 8.9.2013 12:18:05 von gaec -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So müsste es funktionieren
$bbcode = array("/\[i\](.*?)\[\/i\]/Usi", "/\[spoiler\](.*?)\[\/spoiler\]/Usi", ); $html = array("<html>$1</html>", "<html>$1</html>",); $eintrag = preg_replace($bbcode, $html, $eintrag);
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage