<?php /* BBCode Parser Vers�o do modificada do BBCode Parser por: Higor Euripedes ( heuripedes@hotmail.com ) - parametros obrigat�rios: (string) bbcode = Texto para ser compilado; - parametros opcionais: (boolean) all_to_entities = Converter (TRUE) ou n�o (FALSE) caracteres especiais para entidades HTML; (string) code_str = Palavra para indicar o c�digo; (string) code_bgcolor = Cor de fundo para o c�digo; (string) quote_str = Palavra para indicar a cita��o; Uso: bbcode ( string bbcode [, bool all_to_entities, string code_str, string code_bgcolor, string quote_str] ) */ function bbcode ( $bbcode, $all_to_entities = FALSE, $code_str = 'code', $code_bgcolor = '', $quote_str = 'quote' ) { $quote_str = trim( $quote_str ); $code_str = trim( $code_str ); $code_bgcolor = trim( $code_bgcolor ); if ( $all_to_entities == TRUE || $all_to_entities == 1) { $bbcode = htmlentities( $bbcode ); $bbcode = nl2br( $bbcode ); } elseif ( $all_to_entities == FALSE || $all_to_entities == '' || $all_to_entities == 0 ) { $bbcode = htmlspecialchars( $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', '/(\[)(quote)(])(\r\n)*(.*)(\[\/quote\])/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>'. $code_str . '<hr noshade><FONT style="background-color:' . $code_bgcolor . ';Width:100%">\\5</FONT><hr noshade></pre></blockquote>', '<blockquote><pre>'. $code_str . '<hr noshade><FONT style="background-color:' . $code_bgcolor . ';Width:100%">\\5</FONT><hr noshade></pre></blockquote>', '<pre>' . $code_str . ':\\5</pre>', '<br><blockquote>' . $quote_str . ':<br><q style="border-width: 1px; '. 'border-style:solid;width:100%;height:100%"><br>\\5 <br></q></blockquote><br>', '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 = str_replace( '\\\'', '\'', $bbcode ); $bbcode = str_replace( '<br />', '<br>', $bbcode); $codebits = explode( '<blockquote><pre>'. $code_str . ':<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>'. $code_str . ':<hr noshade>' . $newbits; } $codebits = explode( '<pre>'. $code_str . ':', $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>'. $code_str . ':' . $newbits; } return $bbcode; } // EXEMPLO $texto = '[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]; '; echo bbcode($texto,FALSE,'C�digo','GRAY','Cita��o'); ?>