Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

BBCode no PHP

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial BBCode no PHP

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

    ?>
    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:
    Código PHP:
    echo bbcode("[b]oi[/b] [u]legal[/u]"); 
    Agora, neste segundo, não mudamos muito nada. A diferença é que a tag está logo na frente de sua correspondente, acionada apenas com '=>'.
    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-decorationunderline;">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);

    E seu uso é similar:
    Código PHP:
    echo bbcode("[b]oi[/b] [u]legal[/u]"); 
    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.
    Código PHP:
      $a = array( 
    ...
          
    "/:D/is" 
       
    ); 
       
    $b = array( 
    ...
          
    "<img src=\"smiles/rindo.png\" />"
       ); 
    Já no segundo, faremos:
    Código PHP:
      $tags = array(
    ...
              
    "/:D/si"   => "<img src=\"smiles/rindo.png\" />"
    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!
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
    Similar Threads

  • Font Size
    #2
    Obrigado por compartilhar 0KAL.

    Abraços.


    WCG 147
    sigpic

    Comment


    • Font Size
      #3
      Olá!

      Obrigado, já passei isto à um amigo que estava precisando.
      Continue postando coisas deste tipo ^-^

      Até mais,
      Script.
      "Compartilhe, agradeça, motive, engrandeça!"
      "Faça o bem, sem ver a quem!"
      "Conhecimento não é crime. Crime é o que vem depois dele, seus atos!"
      "Não deixe mais que seu opressor o domine!"

      Comment

      X
      Working...
      X