Basicamente, la funcion
htmlspecialchars(); es una función predeterminada de PHP que como su propio nombre indica, hace que las etiquetas HTML sean leídas como texto plano, es decir, que no sean representadas sino mostradas tal cual.
Traduce las etiquetas
HTML a texto
plano (Sin etiquetas HTML):
- '&' se convierte en '&'
- '"' se convierte en '"'
- ''' se convierte en '''
- '<' se convierte en '<'
- '>' se convierte en '>'
Ejemplo 1 -
htmlspecialchars();<?PHP
$texto = "<font color='#FF0000' size='12'><b><u>Texto</u></b></font>";
echo "1. ".$texto; //Lo Mostramos sin aplica la funcion
echo "<br>"; //Simplemente un salto de linea
echo "2. ".htmlspecialchars($texto); //Lo mostramos aplicando la funcion
?>Se mostrará lo siguiente:
1. Texto
2. <font color='#FF0000' size='12'><b><u>Texto</u></b></font>
Con esta función podemos evitar multitud de problemas relacionados con los formularios..., por ejemplo en un chat. Cuando un usuario envia un mensaje si sabe un poco sobre HTML podría llegar a pensar que poniendo <b>Mensaje...</b> se mostraría en negrita. Si el usuario en cuestion empieza a escribir codigos mas complejos como.. <table><tr>... podría estropear la estructura de los mensajes y causarnos muchas molestias.
De ahí es de donde sale el BBCode, para evitar problemas como el anterior se inutiliza el codigo html y el BBCode hace la funcion de HTML pero de un modo mas controlado y solamente permitiendo ciertas opciones de HTML como poner texto en
negrita, en
cursiva... Hay multitud de opciones, tantas como desees permitir a los usuarios.
¿Dudas? Si no os ha servido el Ejemplo 1 me encargaré de exponer otro nuevo ejemplo
