2011-05-25 16 views
5

Estoy buscando un analizador de BBCode en Javascript o PHP sin la necesidad de usar Regex. ¿Alguien puede sugerirme uno bueno?Analizador de BBCode sin Regex?

+2

por qué estás evitando expresiones regulares? (¿velocidad?) – tofutim

+3

Porque no solo quiero reemplazar las etiquetas, también quiero hacer un poco con el contenido entre las etiquetas. ¿Tienes alguna sugerencia para mí? – Teiv

+0

"También quiero hacer un poco con el contenido entre las etiquetas" 'preg_replace_callback()' es ideal para esto. Si nos puede dar un ejemplo sólido de lo que está tratando de hacer exactamente, podemos darle consejos más específicos. –

Respuesta

6

Se recomienda utilizar expresiones regulares.

otra solución:

function bb_parse($str) 
{ 
    return str_replace(array('[b]', '[/b]'), array('<strong>', '</strong>'), $str); 
} 

Este análisis puede romper debido a clasificaciones de errores de cierre puede terminar contenido que se está envuelto con una etiqueta HTML sin cerrar.

+0

Ehm, BB es un formato recursivo igual que HTML. Por lo tanto, invoco el poni: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

1

Zend analizador podría ser lo que estás buscando http://framework.zend.com/manual/en/zend.markup.parsers.html

Por desgracia, me pareció el menos prácticamente funcional de la Analizadores de código BBCode que evalué: cuando se encuentra marcado incorrecto ([b] asdf [/ wops I forgot to close my tag) tiende a tirar todo el contenido después de la primera etiqueta mal formada. Otros analizadores de bbcode hacen un mejor trabajo simplemente ignorando el marcado incorrecto.

0

Hace poco escribir un analizador de BBCode en javascript.

Lo que puede hacer:

  1. Convierte la cadena a cadena HTML BBCode;
  2. Convierte el elemento HTML a cadena BBCode;
  3. Corregir automáticamente la cadena BBCode;

Comprobar la demo: UBBParser

Cuestiones relacionadas