Quem já pesquisou e precisou do BBCode já viu que é necessárioApenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
Para quem ainda não sabe, Bulletin Board Code é uma linguagem especial derivado do HTML mais simples, usada por exemplo no Orkut e neste fórum.
Mas o que vou passar agora pode ser a solução para muitos. Vou repassar funções de implementação de BBCode. Na verdade, serão duas. Vai depender de sua escolha de organização.
A primeira é o seguinte:
Para adição, edição ou remoção de tags, edite os arrays $a e $b, respeitando a sequencia ordinal (o primeiro ítem representa o primeiro ítem da segunda array, etc...)
E seu uso é simplificado:
Agora, neste segundo, não mudamos muito nada. A diferença é que a tag está logo na frente de sua correspondente, acionada apenas com '=>'.
E seu uso é similar:
Agora, vamos ver a diferença entre as duas. Suponhamos que você queira colocar a imagem "smiles/rindo.png" na tag "".
No primeiro código, faremos assim:
Adicionamos os valores às Arrays $a e $b.
Já no segundo, faremos:
Agora, a escolha fica a seu critério. Eu particularmente prefiro a segunda, mas esta dificulta se você for deixar que o cliente edite as tags em um ambiente gráfico, sendo preferencial a primeira. Mas, boa sorte na escolha e até a próxima!
Para quem ainda não sabe, Bulletin Board Code é uma linguagem especial derivado do HTML mais simples, usada por exemplo no Orkut e neste fórum.
Mas o que vou passar agora pode ser a solução para muitos. Vou repassar funções de implementação de BBCode. Na verdade, serão duas. Vai depender de sua escolha de organização.
A primeira é o seguinte:
Código PHP:
<?
function BBcode($texto){
$texto = htmlentities($texto);
$a = array(
"/\[i\](.*?)\[\/i\]/is",
"/\[b\](.*?)\[\/b\]/is",
"/\[u\](.*?)\[\/u\]/is",
"/\[img\](.*?)\[\/img\]/is",
"/\[url=(.*?)\](.*?)\[\/url\]/is"
);
$b = array(
"<i>$1</i>",
"<b>$1</b>",
"<u>$1</u>",
"<img src=\"$1\" />",
"<a href=\"$1\" target=\"_blank\">$2</a>"
);
$texto = preg_replace($a, $b, $texto);
$texto = nl2br($texto);
return $texto;
}
?>
E seu uso é simplificado:
Código PHP:
echo bbcode("[b]oi[/b] [u]legal[/u]");
Código PHP:
function bbcode($texto) {
$tags = array(
"/(?<!)[color(?::w+)?=(.*?)](.*?)[/color(?::w+)?]/si" => "<span style="color:1;">2</span>",
'/(?<!)[size(?::w+)?=(.*?)](.*?)[/size(?::w+)?]/si' => "<span style="font-size:1;">2</span>",
'/(?<!)[b(?::w+)?](.*?)[/b(?::w+)?]/si' => "<span style="font-weight:bold;">1</span>",
'/(?<!)[code(?::w+)?](.*?)[/code(?::w+)?]/si' => "<span class="barra-code">CÓDIGO</span><code class="code">1</code>",
'/(?<!)[i(?::w+)?](.*?)[/i(?::w+)?]/si' => "<span style="font-style:italic;">1</span>",
'/(?<!)[u(?::w+)?](.*?)[/u(?::w+)?]/si' => "<span style="text-decoration: underline;">1</span>",
'/(?<!)[align(?::w+)?=(.*?)](.*?)[/align(?::w+)?]/si' => "<span style="display:block;text-align:1">2</span>",
// BBCode [url]
'/(?<!)[url(?::w+)?]www.(.*?)[/url(?::w+)?]/si' => "<a href="http://www.1" onclick="window.open(this.href); return false;">1</a>",
'/(?<!)[url(?::w+)?](.*?)[/url(?::w+)?]/si' => "<a href="1" onclick="window.open(this.href); return false;">1</a>",
'/(?<!)[url(?::w+)?=(.*?)?](.*?)[/url(?::w+)?]/si' => "<a href="1" onclick="window.open(this.href); return false;">2</a>",
// Download
'/(?<!)[down(?::w+)?=(.*?)?](.*?)[/down(?::w+)?]/si' => "<img class="down" src="".BASE_URL."img/download.gif" alt="" /> <a href="1" onclick="window.open(this.href); return false;">2</a>",
// BBCode Imagem
'/(?<!)[img(?::w+)?](.*?)[/img(?::w+)?]/si' => "<a href="1" title="Ampliar" class="highslide" onclick="return hs.expand (this)"><img src="1" alt="Imagem" /></a>",
'/([/?w+(?::w+)*])/' => "1"
);
$texto = preg_replace(array_keys($tags), array_values($tags), $texto);
return nl2br($texto);
}
Código PHP:
echo bbcode("[b]oi[/b] [u]legal[/u]");
No primeiro código, faremos assim:
Adicionamos os valores às Arrays $a e $b.
Código PHP:
$a = array(
...
"/:D/is"
);
$b = array(
...
"<img src=\"smiles/rindo.png\" />",
);
Código PHP:
$tags = array(
...
"/:D/si" => "<img src=\"smiles/rindo.png\" />",
Comment