<?php // ###################### Start bbcodeparse ####################### function bbcode($bbcode) { $bbcode = str_replace('<','&lt;',$bbcode); $bbcode = str_replace('>','&gt;',$bbcode); $bbcode = str_replace('<','<',$bbcode); $bbcode = str_replace('>','>',$bbcode); $bbcode = nl2br($bbcode); $searcharray = array( "/(\[)(list)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/list)(((=)(\\4)([^\"']*)(\\4]))|(\]))/siU", "/(\[)(list)(])(.*)(\[\/list\])/siU", "/(\[\*\])/siU", "/(\[)(url)(=)(['\"]?)(www\.)([^\"']*)(\\4)(.*)(\[\/url\])/siU", "/(\[)(url)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/url\])/siU", "/(\[)(url)(])(www\.)([^\"]*)(\[\/url\])/siU", "/(\[)(url)(])([^\"]*)(\[\/url\])/siU", "/(\[)(b)(])(\r\n)*(.*)(\[\/b\])/siU", "/(\[)(u)(])(\r\n)*(.*)(\[\/u\])/siU", "/(\[)(i)(])(\r\n)*(.*)(\[\/i\])/siU", "/(\[)(php)(])(\r\n)*(.*)(\[\/php\])/siU", "/(\[)(code)(])(\r\n)*(.*)(\[\/code\])/siU", "/(\[)(pre)(])(\r\n)*(.*)(\[\/pre\])/siU", "/javascript:/si", "/about:/si" ); //'" $replacearray = array( "<ol type=\"\\5\">\\7</ol>", "<ul>\\4</ul>", "<li>", "<a href=\"http://www.\\6\" target=\"_blank\">\\8</a>", "<a href=\"\\5\" target=\"_blank\">\\7</a>", "<a href=\"http://www.\\5\" target=\"_blank\">\\5</a>", "<a href=\"\\4\" target=\"_blank\">\\4</a>", "<b>\\5</b>", "<u>\\5</u>", "<i>\\5</i>", "<blockquote><pre>c�digo:<hr noshade>\\5<hr noshade></pre></blockquote>", "<blockquote><pre>c�digo:<hr noshade>\\5<hr noshade></pre></blockquote>", "<pre>c�digo:\\5</pre>", "java script:", "about :" ); $bbcode = preg_replace($searcharray, $replacearray, $bbcode); $bbcode = preg_replace("/(\[)(img)(])(\r\n)*([^\"]*)(\[\/img\])/siU", "<img src=\"\\5\" border=\"0\" alt=\"\">", $bbcode); //$bbcode = preg_replace("/(\[)(img)(])(\r\n)*([^\"]*)(\[\/img\])/siU", "<a href=\"\\5\" target=\"_blank\">\\5</a>", $bbcode); $bbcode = str_replace("\\'", "'", $bbcode); $bbcode = str_replace('<br />','<br>', $bbcode); $codebits = explode('<blockquote><pre>c�digo:<hr noshade>',$bbcode); list($key,$bbcode) = each($codebits); while (list($key,$val) = each($codebits)) { $sbbits = explode('<hr noshade></pre></blockquote>',$val); $newbits = str_replace('<br>','', $sbbits[0]).'<hr noshade></pre></blockquote>'.$sbbits[1]; $bbcode .= '<blockquote><pre>c�digo:<hr noshade>'.$newbits; } $codebits = explode('<pre>c�digo:',$bbcode); list($key,$bbcode) = each($codebits); while (list($key,$val) = each($codebits)) { $sbbits = explode('</pre>',$val); $newbits = str_replace('<br>','', $sbbits[0]).'</pre>'.$sbbits[1]; $bbcode .= '<pre>c�digo:'.$newbits; } return $bbcode; } // EXEMPLO $texto = <<<EOF [b]Ol�[/b], Este � [u]apenas um teste[/u] para mostrar [i]o que ele faz[/i] [url]http://www.dominio.com.br[/url] [code] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN\"> <html> <head> <title>t�tutlo</title> </head> <body> texto texto texto texto texto texto texto </body> </html> [/code] [list] [*]asdf [*]asdf [*]asdf [/list] EOF; echo bbcode($texto); ?>