Codigo tipo BBCode

Si tenemos en nuestra página alguna sección donde los visitantes pueden escribir sus comentarios sobre nuestra página o cualquier cosa que utilice un formulario, puede que queramos dejar que el visitante le de formato al texto (negrita, cursiva, darle color, etc.) pero no deseamos dejar que el usuario utilice HTML ya que puede ser un riesgo de seguridad y nuestra página quedaría vulnerable a ataques por personas maliciosas.

Para esto hace tiempo se creo un código comúnmente conocido como BBCode y que permite darle formato a nuestro texto sin los riesgos de utilizar directamente HTML.

Como en el ejemplo anterior volveremos a usar preg_replace() aunque para otros ejemplos con el uso de str_replace() tendremos más que suficiente. Mostraré varios ejemplos que puedes ir uniendo según lo que quieras.

Texto en negrita

Para poner un texto en negrita podemos hacer uso de str_replace():

<?
$texto = ‘Quiero este texto en negrita.’ ;
$texto = str_replace(array(‘‘,’‘),array(‘‘,’‘),$texto) ;
echo $texto ;

El ejemplo anterior nos daría como resultado esto:

Quiero este texto en negrita.

También podemos usar preg_replace():

Nota: Los mismo creadores de PHP recomiendan str_replace() por encima de preg_replace() en cuestión de rendimiento, ya que el primero hace una sustitución simple y directa, y el segundo usa el motor de expresiones regulares lo cuál ocasiona una carga ligeramente mayor, así que en la medida de lo posible es recomendable primero buscar una solución mediante str_replace() y posteriormente con preg_replace().

Texto a color

Para un texto a color podemos hacer una combinación de preg_replace() con str_replace():

<?
$texto = ‘Quiero este texto en color naranja.’ ;
$texto = preg_replace(‘/\[color=(#?[a-z0-9]+)\]/i’,'<span>’,$texto) ;
$texto = str_replace(‘[/color]’,'</span>’,$texto) ;
echo $texto ;

Este es el resultado:

Quiero este texto en color naranja.

Podemos usar sólo preg_replace() aunque debemos hacer uso del modificador “U” si indicamos dos o más colores diferentes:

</span>

El resultado sería este:

Quiero este texto en color naranja y este en color verde.

Si no usas “U” en la expresión, la función no se detendría en el primer [ /color] y se iría hasta el último encontrado en el texto, dando como resultado esto:

Quiero este texto en color naranja [ /color] y [ color=#00c000]este en color verde.

Share this Story

Related Posts

Hosting Perú

En Net Hosting Perú el servicio nunca se cae, contamos con sistemas de múltiples servidores automatizados totalmente redundantes que respaldan cualquier interrupción del servicio al instante.

Soporte Técnico Profesional Avanzado, estamos listos para resolver sus problemas rápida y profesionalmente las 24x7x365.

Somos mayoristas de Hosting ofrecemos más espacio y mayor transferencia a menores precios que la competencia.

Por qué hacemos esta garantía, porque usamos la tecnología de servidores más confiables disponible hoy en día.

NUESTRA DATA CENTER DE CLASE MUNDIAL

Nuestro proveedor Complex Drive está conectada a Seis (6) de los más grandes proveedores de banda ancha (de AT&T, Level3, Cox, Cogent, MCI / Verizon, Telepacific),