Transformar código BBCode en HTML con una función PHP

En este tutorial crearemos una función en PHP que transforme el código BBCode a etiquetas HTML. Nos puede ser útil a la hora de trabajar con editores BBCode como MarkItUp en nuestros proyectos.

¿CÓMO FUNCIONA?

La función que creamos es realmente sencilla, básicamente lo que hacemos es buscar a través de la variable que enviemos, aquellas etiquetas BBCode que estén en nuestro array y reemplazarlas por las correspondientes etiquetas HTML.

Utilizamos preg_replace() para aquellas etiquetas más complejas como [url][size] y [color]. Modificando un poco el código podrán colocar sus etiquetas personalizadas.

LA FUNCIÓN

function bbcode_to_html($texto) {
 // Limpiamos las posibles etiquetas que puedan colocar
 $texto = strip_tags($texto);
// Creamos el array $search que busca los BBCode simples y el array $replace que los reemplaza por la etiqueta HTML correspondiente
 $search = array('[b]', '[/b]', '[i]', '[/i]', '[/url]', '[/size]', '[/color]');
 $replace = array('<b>', '</b>', '<i>', '</i>', '</a>', '</span>', '</span>');
// Realizamos el reemplazo con la función str_replace()
 $texto = str_replace($search, $replace, $texto);
// Buscamos y reemplazamos etiquetas más complejas con preg_replace()
 $texto = preg_replace('/\[url=(.*?)\]/', '<a href="$1">', $texto);
 $texto = preg_replace('/\[size=(\d*?)\]/', '<span style="font-size: $1px">', $texto);
 $texto = preg_replace('/\[color=(\#[0-9A-F]{6}+)\]/', '<span style="color: $1">', $texto);
return $texto;
}

Si estás buscando un editor BBCode para textareas:

Markitup! convierte tu textarea en un editor html con jQuery

Ir al artículo

También puedes reemplazar las etiquetas BBCode por HTML dinámicamente con jQuery

Cómo reemplazar BBCode por etiquetas HTML con jQuery

Ir al artículo

Modificado por última vez el día 30 de noviembre de 2012 a las 10:09
Posted in PHP
Scroll to top