
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 ...