Función PHP htmlspecialchars()
Ejemplo
Convertir los caracteres predefinidos "<" (menor que) y ">" (mayor que) en entidades HTML:
<?php $str = "Esto es un texto <b>negrita</b>."; echo htmlspecialchars($str); ?>
La salida HTML del código anterior es la siguiente (ver código fuente):
<!DOCTYPE html> <html> <body> Esto es un texto <b>negrita</b>. </body> </html>
La salida del navegador del código anterior es la siguiente:
Esto es un texto <b>negrita</b>.
Definición y uso
La función htmlspecialchars() convierte los caracteres predefinidos en entidades HTML.
Los caracteres predefinidos son:
- & (y) se convierte en &
- " (comilla doble) se convierte en "
- ' (comilla simple) se convierte en '
- < (menor que) se convierte en <
- > (mayor que) se convierte en >
Consejo:Para convertir entidades HTML especiales en caracteres, utilice htmlspecialchars_decode() Función.
Sintaxis
htmlspecialchars(string,flags,character-set,double_encode)
Parámetros | Descripción |
---|---|
string | Obligatorio. Especifica la cadena que se debe convertir. |
flags |
Opcional. Especifica cómo manejar las comillas, la codificación no válida y qué tipo de documento usar. Tipos de comillas disponibles:
Codificación no válida:
Flags adicionales para especificar el tipo de documento utilizado:
|
character-set |
Opcional. Una cadena que especifica el conjunto de caracteres a usar. Valores permitidos:
Comentarios:En versiones anteriores a PHP 5.4, los conjuntos de caracteres no reconocidos se ignorarán y se reemplazarán con ISO-8859-1. A partir de PHP 5.4, los conjuntos de caracteres no reconocidos se ignorarán y se reemplazarán con UTF-8. |
double_encode |
Opcional. Booleano que especifica si se debe codificar las entidades HTML existentes.
|
Detalles técnicos
Valor devuelto: |
Se devuelve la cadena convertida. Si string Si contiene una codificación no válida, se devuelve una cadena vacía, a menos que se hayan configurado los marcadores ENT_IGNORE o ENT_SUBSTITUTE. |
Versión de PHP: | 4+ |
Registro de actualizaciones: |
En PHP 5,character-set El valor predeterminado del parámetro se cambió a UTF-8. En PHP 5.4, se añadieron: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 y ENT_XHTML. En PHP 5.3, se añadió ENT_IGNORE. En PHP 5.2.3, se añadió double_encode Parámetros. En PHP 4.1, se agregó character-set Parámetros. |
Más ejemplos
Ejemplo 1
Convertir algunos caracteres predefinidos en entidades HTML:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // Solo convertir comillas dobles echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Convertir comillas dobles y simples echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // No convertir ninguna comilla ?>
La salida HTML del código anterior es la siguiente (ver código fuente):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
La salida del navegador del código anterior es la siguiente:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Ejemplo 2
Convertir comillas dobles en entidades HTML:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // Convertir comillas dobles y simples ?>
La salida HTML del código anterior es la siguiente (ver código fuente):
<!DOCTYPE html> <html> <body> Me encanta "PHP". </body> </html>
La salida del navegador del código anterior es la siguiente:
Me encanta "PHP".