Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Aiuto parsing BBCode tramite classe
Forum - PHP - Aiuto parsing BBCode tramite classe

Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 85
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 16:47
Lunedì, 20/02/2012
Premetto di sapere che on-line esistono già delle classe che effettuano il parsing del codice BB, ma non penso che facciano ciò che io voglia, se mai, non so, potrete suggerirmela una voi.

Cmq ho da poco creato questa classe, per interpretare in BBCode presente in una stringa, anche se ancora non completa del tutto:

Codice sorgente - presumibilmente Php

  1. <?php
  2. class BBCode
  3. {
  4.    var $output = null;
  5.    var $sh = null;
  6.    var $rp = null;
  7.    
  8.    function __construct($args)
  9.    {
  10.       $args = func_get_args();
  11.       $this->sh = array();
  12.       $this->rp = array();
  13.      
  14.       for ($i = 0; $i < count($args); $i++)
  15.       {
  16.          $tag = $args[$i];
  17.          
  18.          switch ($tag) {
  19.             case "b" || "i" || "u" || "code":
  20.                $this->sh[] = "/[$tag\](.*?)\[\/$tag\]/";
  21.                $this->rp[] = "<$tag>\\1</$tag>";
  22.             break;
  23.          }
  24.       }
  25.    }
  26.    
  27.    function parsing($text)
  28.    {
  29.       str_replace("<", "<", $text);
  30.        str_replace(">", "<", $text);
  31.       preg_replace($this->sh, $this->rp, $text);
  32.  
  33.       $this->output = $text;
  34.    }
  35.  
  36.    function out()
  37.    {
  38.       echo $this->output;
  39.    }
  40. }
  41. ?>



In poche parole, il costruttore accetta vari parametri ( nel mio caso i tag BB che dovrebbe interpretale ), dopo richiamando la funzione parsing(), che come parametro accetta la stringa contenente il codice BB da interpretare, mi dovrebbe interpretarlo, ma non fa ciò che io vorrei, visto che la funzione out(), che restituisce il testo dopo l'interpretazione del codice BB, mi restituisce il testo senza il codice interpretato.

Come potrei risolvere, dove sbaglio? non so se sono stato abbastanza chiaro.

Ultima modifica effettuata da Sevenjeak il 20/02/2012 alle 16:52


Programmando si impara..
PM