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:
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.