+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

[Script] Formattazione testo con bbcode.

Ultimo Messaggio di Alessio24 il:
  1. #1
    Utente Premium L'avatar di stable
    Data Registrazione
    Nov 2006
    Localit
    Sicilia
    Messaggi
    1,468

    [Script] Formattazione testo con bbcode.

    Ho fatto un sito con l'inserimento di articoli, molto semplice e ho ovviato alla formattazione del testo tramite il praticissimo bbcode messo a disposizione per noi piccoli webmaster.
    Arrivo al mio problema: la formattazione del testo tramite bbcode avviene in modo esatto, tranne per i [BR]
    Eccovene un esempio:
    http://www.immigrazione.biz/circolare1.html

    Ed ecco il bbcode.php da me usato:

    <?php
    //Funzione per interpretare il testo
    function fBBCode($string)
    {
    //No HTML
    $string = trim(str_replace("<", "<", $string));
    $string = trim(str_replace(">", ">", $string));

    //CHR 13
    $string = trim(str_replace(chr(13), "[BR];", $string));
    $string = trim(str_replace(";", "", $string));

    //BBCODE
    $string = trim(str_replace("", "<b>", $string));
    $string = trim(str_replace("
    ", "</b>", $string));
    $string = trim(str_replace("[C]", "<i>", $string));
    $string = trim(str_replace("[/C]", "</i>", $string));
    $string = trim(str_replace("[S]", "<u>", $string));
    $string = trim(str_replace("[/S]", "</u>", $string));
    $string = trim(str_replace("[HR]", "<hr>", $string));
    $string = trim(str_replace("[LI]", "<li>", $string));
    $string = trim(str_replace("[IMAGE=", "<img border='0' src='", $string));
    $string = trim(str_replace("[url=", "<a href='", $string));
    $string = trim(str_replace("[/URL]", "</a>", $string));
    $string = trim(str_replace("[LEFT]", "<div align='left'>", $string));
    $string = trim(str_replace("[CENTER]", "<div align='center'>", $string));
    $string = trim(str_replace("[RIGHT]", "<div align='right'>", $string));
    $string = trim(str_replace("[/LEFT]", "</div>", $string));
    $string = trim(str_replace("[/CENTER]", "</div>", $string));
    $string = trim(str_replace("[/RIGHT]", "</div>", $string));
    $string = trim(str_replace("[COLORE=", "<font color=", $string));
    $string = trim(str_replace("[/COLORE]", "</font>", $string));
    $string = trim(str_replace("]", "'>", $string));

    //Ritorno il valore
    return $string;
    }
    ?>
    Qualche suggerimento per piacere?
    Sinceramente non capisco il perch. Grazie a tutti per chi mi volesse aiutare

    Ho appena risolto. Grazie lo stesso. PS = ecco la soluzione.
    Ho aggiunto $string = trim(str_replace("[BR]", "<br>", $string));
    $string = trim(str_replace("[/BR]", "</br>", $string));

    al bbcode.php
    Ultima modifica di stable; 22-02-07 alle 18:15 Motivo: Problema risolto
    Non tutto ora ci che luccica!

  2. #2
    Banned L'avatar di fabioski
    Data Registrazione
    May 2005
    Messaggi
    866
    Sei sicuro che per gli URL funzioni bene? Quelli del tipo {URL}http:etc{/URL}
    Non li consideri quelli?

  3. #3
    Utente Premium L'avatar di francesco zeno
    Data Registrazione
    Jan 2007
    Messaggi
    123
    Ciao Stable,
    credo che il BBcode utile al fine di non creare errori nella pagina.

    La funzione che leggo somiglia ad una gia presente in php, e nel tuo caso sarebbe pi semplice fare cos:

    strip_tags($string, '<b><i><u><hr><br><br/><li><a><img><div><font>');

    Questo limita l'uso di html ai soli tag specificati tra virgolette, ma ovviamente bisogna scrivere gli articoli in html.....

    Se si vuole proprio far uso del BBcode, sfruttiamolo a dovere....

    Se in un articolo si apre un div senza chiuderlo..................................tutto il lavoro del webmaster va a farsi friggere.

    Io consiglio questo per "tradurre" il BBcode:

    Codice PHP:
     function bbcode_format($var) {
         
    $search array(
             
    '/\[b\](.*?)\[\/b\]/is',                                
             
    '/\[i\](.*?)\[\/i\]/is',                                
             
    '/\[u\](.*?)\[\/u\]/is',
             
    '/\[img\](.*?)\[\/img\]/is',
             
    '/\[url\](.*?)\[\/url\]/is',
             
    '/\[url\=(.*?)\](.*?)\[\/url\]/is'
             
    );
         
    $replace = array(
             
    '<strong>$1</strong>',
             
    '<em>$1</em>',
             
    '<u>$1</u>',
             
    '<img src="$1" />',
             
    '<a href="$1">$1</a>',
             
    '<a href="$1">$2</a>'
             
    );
         
    $var preg_replace ($search$replace$var);
         return 
    $var;
     } 
    Questa funzione traduce i tag BBcode in coppia, solo se prima aperti e poi chiusi, utilizza le espressioni regolari, ma anche se non si pratici basta copiare quello che gi c' per aggiungere altri tag.

    Ciao.
    Ultima modifica di Samyorn; 14-08-09 alle 12:04 Motivo: Sistemati apici nel codice.

  4. #4
    ModSenior L'avatar di Thedarkita
    Data Registrazione
    Aug 2006
    Localit
    Messina
    Messaggi
    7,268
    Segui Thedarkita su Twitter Aggiungi Thedarkita su Google+ Aggiungi Thedarkita su Facebook Aggiungi Thedarkita su Linkedin Visita il canale Youtube di Thedarkita
    Per quanto riguarda la funzione per trasformare i bbcode per poter funzionare in modo ricorsivo, ad esempio un sistema quote dove si pu verificare il quote del quote, bisogna fare cosi:
    Codice PHP:
    <?php

    function bbcode_format($var) {
         
    $search array(
                    
    "/\[b\](.*?)\[\/b\]/is"
                    
    "/\[i\](.*?)\[\/i\]/is"
                    
    "/\[u\](.*?)\[\/u\]/is"
                    
    "/\[img\](.*?)\[\/img\]/is"
                    
    "/\[url\](.*?)\[\/url\]/is",
                    
    "/\[url\=(.*?)\](.*?)\[\/url\]/is"
             
    );
         
    $replace = array(
         
    '<strong>$1</strong>',
             
    "<em>$1</em>",
             
    "<u>$1</u>",
             
    '<img src="$1" />',
             
    '<a href="$1">$1</a>',
             
    '<a href="$1">$1</a>'
             
    );
            
         while(
    preg_match("#\[quote\](.*?)\[\/quote\]#is"$var)!=0)
             
    $var preg_replace("#\[quote\](.*?)\[\/quote\]#is"'<table border="1"><tr><td>$1</td></tr></table>'$var);
         
    $var preg_replace($search$replace$var);
         return 
    $var;
     }

  5. #5
    User L'avatar di morpheo983
    Data Registrazione
    Jun 2007
    Messaggi
    29
    Io ho tutti i tag cosi:
    [b:sk07ho8k]testo[/b:sk07ho8k]

    come posso risolverlo?
    Grazie
    www.mynokia.it Il sito per il tuo Nokia.

  6. #6
    User Newbie
    Data Registrazione
    Mar 2012
    Localit
    Torino
    Messaggi
    4
    Codice PHP:
    function bbcode_ritorno($var) {
         
    $search array(
                    
    "#<strong>(.*?)</strong>#",
                    
    "#<em>(.*?)</em>#"
                    
    "#<u>(.*?)</u>#"
                    
    '#<img src="(.*?)" />#'
                    
    '#<a href="(.*?)">(.*?)</a>#',
                    
    '#<a href="(.*?)">(.*?)</a>#'

             
    );
         
    $replace = array(
             
    '[b]$1[/b]',
             
    "[i]$1[/i]",
             
    "[u]$1[/u]",
             
    '[img]$1[/img]',
             
    '[url=$1]$2[/url]',
             
    '[url=$1]$2[/url]'

             
    );
            
         while(
    preg_match('#<table border="1">(.*?)</table>#is'$var)!=0)
             
    $var preg_replace('#<table border="1"><tr><td>(.*?)</td></tr></table>#is''[quote]$1[/quote]'$var);
         
    $var preg_replace$search$replace$var);
         return 
    $var;
     } 
    Provato e testato, questa funzione l'inverso di quella proposta da Thedarkita!
    Potrebbe sempre servire...

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] Attivato
  • Il codice [VIDEO] Attivato
  • Il codice HTML Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.