hmmm kannste das mal in das folgende beispiel einbauen ich weiss net soo ganz genau wie ich das machen soll..
<?php
function bbcodes($text, $url = TRUE, $bb = TRUE) {
# Config #
$max_l = 100; // maximale Länge eines Wortes
$lword_replace = "-<br/>"; // Lange Wörter werden getrennt durch...
//Pfad zu den Smilie-Bildern, (mit abschließendem /, also zb "bilder/smilies/":
$smilie_pfad = "images/smilies/";
// Header und Footer beschreiben, wie...
// der farbige PHP-Code umschlossen wird
$header_php = '<br/><span class="code_ueberschift">php code</span><span class="code_php"><code>';
$footer_php = '</code></span><br/>';
// Zitate umschlossen werden
$header_quote = '<br/><span class="code_ueberschift">zitat</span><span class="code_php">';
$footer_quote = '</span><br/>';
// normaler code umschlossen wird
$header_code = '<br/><span class="code_ueberschift">code</span><span class="code_code"><code>';
$footer_code = '</code></span><br/>';
# Ab hier nichts mehr ändern #
#####################################################################
# PHP-Code-Blöcke zwischenspeichern #
$c = md5(time());
$pattern = "/\[php\](.*?)\[\/php\]/si";
preg_match_all ($pattern, $text, $results);
for($i=0;$i<count($results[1]);$i++) {
$text = str_replace($results[1][$i], $c.$i.$c, $text);
}
# PHP-Code-Blöcke zwischenspeichern #
# alles, was die Codeblöcke nicht betrifft #
// zu lange Wörter kürzen
$text = htmlentities($text);
$lines = explode("\n", $text);
$merk = $max_l;
for($n=0;$n<count($lines);$n++) {
$words = explode(" ",$lines[$n]);
$count_w = count($words)-1;
if($count_w >= 0) {
for($i=0;$i<=$count_w;$i++) {
$max_l = $merk;
$tword = trim($words[$i]);
$tword = preg_replace("/\[(.*?)\]/si", "", $tword);
$all = substr_count($tword, "http://" + substr_count($tword, "https://" + substr_count($tword, "www." + substr_count($tword, "ftp://"
if($all > 0) {
$max_l = 200;
}
if(strlen($tword)>$max_l) {
$words[$i] = chunk_split($words[$i], $max_l, $lword_replace);
$length = strlen($words[$i])-5;
$words[$i] = substr($words[$i],0,$length);
}
}
$lines[$n] = implode(" ", $words);
} else {
$lines[$n] = chunk_split($lines[$n], $max_l, $lword_replace);
}
}
$text = implode("\n", $lines);
// URLs umformen
if($url) {
//$text = preg_replace('"((|^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"si',
// '<a href="\1" target="_blank">\\1</a>', $text);
//$text = preg_replace('"(|^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"si',
// '\\1<a href="http://\2" target="_blank">\\2</a>', $text);
$text = preg_replace_callback('"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6})"si', 'no_spam', $text);
$text = preg_replace_callback('"(\s)(\w+://)?((\w+\.)?[\w-:;&()@]+?\.\w+/?\S*)"',
create_function('$m',
'if ($m[1] != \'\' {
$protokoll = strlen($m[2])?$m[2]:\'http://\';
$url = $protokoll.$m[3];
return $m[1].\'\'.$m[2].$m[3].\'\';
}
else return $m[0];'
),
"\n".$text
);
$text = trim($text);
}
// BB-Code
if($bb) {
//fetgedruckt
$text = preg_replace("/\[b\](.*?)\[\/b\]/si",
"<b>\\1</b>", $text);
//kursiv
$text = preg_replace("/\[i\](.*?)\[\/i\]/si",
"<i>$1</i>", $text);
//unterstrichen
$text = preg_replace("/\[u\](.*?)\[\/u\]/si",
"<u>\\1</u>", $text);
//liste
$text = preg_replace("/\[list\](.*?)\[\/list\]/si",
"<ul>\\1</ul>", $text);
//listenpunkt
$text = preg_replace("/\[list=(.*?)\](.*?)\[\/list\]/si",
"<ol type=\"\\1\">\\2</ol>", $text);
//listenpunkt
$text = preg_replace("/\[\*\](.*?)\\n/si",
"<li>\\1</li>", $text);
//unterstrichen
$text = preg_replace("/\[h1\](.*?)\[\/h1\]/si",
"<span class=\"ueberschrift\">\\1</span><br/>", $text);
//ausrichtung
$text = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/si",
"<div align=\"\\1\">\\2</div>", $text);
//schriftfarbe
$text = preg_replace("/\[color=(.*?)\](.*?)\[\/color\]/si",
"<font color=\"\\1\">\\2</font>", $text);
//schriftgröße
$text = preg_replace("/\[size=(.*?)\](.*?)\[\/umfliessen\]/si",
"<font size=\"\\1\">\\2</font>", $text);
//bild
$text = preg_replace("/\[img\](.*?)\[\/img\]/si",
"<img src=\"\\1\" border=\"0\" alt=\"bild\"/>", $text);
//bild mit alt-tag
$text = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/si",
"<img src=\"\\1\" border=\"0\" alt=\"\\2\"/>", $text);
//links/rechts umflossen
$text = preg_replace("/\[umfluss=(.*?)\](.*?)\[\/umfluss\]/si",
"<span class=\"\\1\">\\2</span>", $text);
//ueberschrift
$text = preg_replace("/\[h1\](.*?)\[\/h1\]/si",
"<span class=\"ueberschrift\">\\1\</span><br/>", $text);
//youtube / ect video
$text = preg_replace("/\[video\](.*?)\[\/video\]/si",
"<object type=\"application/x-shockwave-flash\" style=\"width:250px; height:205px\" data=\"\\1\"><param name=\"movie\" value=\"\\1\"></param></object>", $text);
//ueberschrift
$text = preg_replace("/\[h2\](.*?)\[\/h2\]/si",
"<span class=\"unter_ueberschrift\">\\1</span><br/>", $text);
//codeblock
$text = preg_replace("/\[code\](.*?)\[\/code\]/si",
$header_code.'\\1'.$footer_code, $text);
//link
$text = preg_replace("/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" title=\"diesem link folgen\">\\2</a>", $text);
//link mit name
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" title=\"diesem link folgen\">\\2</a>", $text);
//emailadresse
$text = preg_replace("/\[email](\w+?)@(\w+?)\.(\w+?)\](.*?)\[\/email\]/si",
'$4 <$1 bei $2 punkt $3>', $text);
//die smilies
include("bbcodes_smilies.php"
//zitat
while(preg_match('/\[quote\](.*?)\[\/quote\]/isU', $text)) {
$text = preg_replace('/\[quote\](.*)\[\/quote\]/si',
$header_quote.'\\1'.$footer_quote,
$text);
}
}
# alles, was die Codeblöcke nicht betrifft #
# PHP-Code-Blöcke umwandeln #
for($i=0;$i<count($results[1]);$i++) {
ob_start();
highlight_string(trim($results[1][$i]));
$ht = ob_get_contents();
ob_end_clean();
$all = $header_php.$ht.$footer_php;
if(function_exists("str_ireplace") {
$text = str_replace("[php ]".$c.$i.$c."[/php ]",$all,$text);
} else {
$text = str_replace("[php ]".$c.$i.$c."[/php ]",$all,$text);
$text = str_replace("[php ]".$c.$i.$c."[/php ]",$all,$text);
}
}
# PHP-Code-Blöcke umwandeln #
$text = nl2br($text);
// Text zurückgeben
return $text;
}
?>