Visualizzazione risultati 1 fino 1 di 1

Discussione: Aiuto parsing BBCode con classe

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito Aiuto parsing BBCode con classe

    So che forse in giro forse si trovano delle classe che fanno questo, ma io vorrei personalizzare la cosa nel modo in qui serve a me.

    Ho creato, in php, una classe per effettuare il parsing ( analisi ) del BBCode, e ovviamente la disattivazione del codice html, composta da true funzione, il costruttore, una che effettua il parsing e una che restituisce il risultato finale.

    Nel costruttore, ecco perché ho creato la classe, passo i tag che mo dovrebbe interpretare ( visto che vorrei, ogni volta che la richiamo, interpretare solo i tag che ho passato come parametro ).

    Bhe.. ora non sto a spiegarvi tutto, credo che il funzionamento della classe ve lo potete immaginare voi, questo è il codice ( ora, visto che lo sto provando solo, lo creato solo per alcuni tag ):

    Codice PHP:
    class BBCode
    {
    var
    $output = null;
    var
    $sh = null;
    var
    $rp = null;

    function
    __construct($args)
    {
    $args = func_get_args();
    $this->sh = array();
    $this->rp = array();

    for (
    $i = 0; $i < count($args); $i++)
    {
    $tag = $args[$i];

    switch (
    $tag) {
    case
    "b" || "i" || "u" || "code":
    $this->sh[] = "\[$tag\](.*?)\[\/$tag\]\\";
    $this->rp[] = "<$tag>\\1</$tag>";
    break;
    }
    }
    }

    function
    parsing($text)
    {
    str_replace("<", "&lt;", $text);
    str_replace(">", "&gt;", $text);
    preg_replace($this->sh, $this->rp, $text);

    $this->output = $text;
    }

    function
    out()
    {
    echo
    $this->output;
    }
    }
    La richiamo in questo modo:

    Codice PHP:
    $bb = new BBCode("b", "i", "u");
    $bb->parsing(testo_da_interpretare);
    $bb->out();
    In questo modo, io vorrei che mi interpretasse solamente i tag b, i e u, come ho scritto nei parametri, ma non funziona, ma la funzione out(), che mi dovrebbe restituire il testo con codice interpretato, mi restituisce il testo con il BBCode ( senza interpretarlo ), come posso risolvere?
    Ultima modifica di sevenjeak : 19-02-2012 alle ore 13.14.32

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •