Verfasst von Lenox am 11.03.2010 - wurde schon 12856 mal gelesen
BBCode
Formatierung
PHP
Loading...
![]()
<?php
function bbcode($bb) {
$offset = 0;
while(($pos = strpos($bb, '[noparse]', $offset)) !== false) {
$end = strpos($bb, '[/noparse]', $pos);
if($end === false) break;
$noparse = substr($bb, $pos + 9, $end - ($pos + 9));
$noparse = str_replace(array('[', ']'), array('[', ']'), $noparse);
$end += 10;
$bb = substr_replace($bb, $noparse, $pos, $end - $pos);
$offset = $end;
}
$search[] = '[b]';
$search[] = '[/b]';
$search[] = '[i]';
$search[] = '[/i]';
$search[] = '[u]';
$search[] = '[/u]';
$search[] = '[/color]';
$search[] = '[/size]';
$search[] = '[/font]';
$search[] = '[highlight]';
$search[] = '[/highlight]';
$search[] = '[quote]';
$search[] = '[/quote]';
$replace[] = '<b>';
$replace[] = '</b>';
$replace[] = '<i>';
$replace[] = '</i>';
$replace[] = '<u>';
$replace[] = '</u>';
$replace[] = '</font>';
$replace[] = '</font>';
$replace[] = '</font>';
$replace[] = '<span class="highlight">';
$replace[] = '</span>';
$replace[] = '<table align="center" width="98%" cellpadding="4" cellspacing="1" class="tableinborder">
<tr>
<td align="left" class="tablecat"><span class="smallfont"><b>Zitat:</b></span></td>
</tr>
<tr class="normalfont">
<td class="inposttable" align="left">';
$replace[] = '</td>
</tr>
</table><br />';
$bb = str_replace($search, $replace, $bb);
$search = array();
$replace = array();
$search[] = '/\[color=(.*?)\]/';
$search[] = '/\[size=(.*?)\]/';
$search[] = '/\[font=(.*?)\]/';
$search[] = '/\[email\](.*?)\[\/email\]/';
$search[] = '/\[email=(.*?)\](.*?)\[\/email\]/';
$search[] = '/\[url\](.*?)\[\/url\]/';
$search[] = '/\[url=(.*?)\](.*?)\[\/url\]/';
$search[] = '/\[img\](.*?)\[\/img\]/';
$replace[] = '<font color="">';
$replace[] = '<font size="">';
$replace[] = '<font face="">';
$replace[] = '<a href="mailto:"></a>';
$replace[] = '<a href="mailto:"></a>';
$replace[] = '<a href=""></a>';
$replace[] = '<a href=""></a>';
$replace[] = '<img src="" />';
$bb = preg_replace($search, $replace, $bb);
$offset = 0;
while(strpos($bb, '[list]', $offset) !== false) {
$pos = strpos($bb, '[list]', $offset);
$end = strpos($bb, '[/list]', $pos);
if($end === false) break;
$list = trim(substr($bb, $pos + 6, $end - ($pos + 6)));
$elements = explode('[*]', $list);
$list = '<ul>';
for($i = 1; $i < count($elements); $i++) {
$list .= '<li>'.nl2br(rtrim($elements[$i])).'</li>';
}
$list .= '</ul>';
$end += 7;
$offset = $end;
$bb = substr_replace($bb, $list, $pos, $end - $pos);
}
$offset = 0;
while(strpos($bb, '[list=', $offset) !== false) {
$pos = strpos($bb, '[list=', $offset);
$pos2 = strpos($bb, ']', $pos + 6);
$type = substr($bb, $pos + 6, $pos2 - ($pos + 6));
$end = strpos($bb, '[/list]', $pos2);
if($end === false) break;
$list = trim(substr($bb, $pos2 + 1, $end - ($pos2 + 1)));
$elements = explode('[*]', $list);
$list = '<ol type="'.$type.'">';
for($i = 1; $i < count($elements); $i++) {
$list .= '<li>'.nl2br(rtrim($elements[$i])).'</li>';
}
$list .= '</ol>';
$end += 7;
$offset = $end;
$bb = substr_replace($bb, $list, $pos, $end - $pos);
}
$offset = 0;
while(($pos = strpos($bb, '[code]0[/code]', $pos);
if($end === false) break;
$code = substr($bb, $pos + 6, $end - ($pos + 6));
$strlen = strlen($code) + 13;
$code = '<pre>'.str_replace('', '', $code).'</pre>';
$end += 7;
$offset = $end - ($strlen - strlen($code));
$bb = substr_replace($bb, $code, $pos, $end - $pos);
}
// Smilies
$bb = eregi_replace(';)', '<img src="smilies/wink.gif" alt=";)" border="0" />', $bb);
return $bb;
}
?><?php
include("bbcode.php");
$message = "Ich bin ein [b]Fetter[/b] Text der auch einen [url=http://google.de]Link[/url] parat hat ;)";
echo $message; // Nachricht unformatiert
echo "<br />";
$message = bbcode($message);
echo $message; //Formatierter Text
?><?php
include("bbcode.php");
$message = "Ich bin ein [b]Fetter[/b] Text der auch einen [url=http://google.de]Link[/url] parat hat ;)";
echo $message; // Nachricht unformatiert
echo "<br />";
$message = nl2br($message); //Hier wird der Text an den sogenannten Enter-Stellen (<br />) umgebrochen
$message = bbcode($message); //Wir senden den Text an bbcode und lassen in arbeiten damit er den Text fr uns umformatiert
echo $message; //Formatierter Text
?>
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...