(PHP 4, PHP 5, PHP 7)
htmlentities — Convierte todos los caracteres aplicables a entidades HTML
$string
[, int $flags
= ENT_COMPAT | ENT_HTML401
[, string $encoding
= ini_get("default_charset")
[, bool $double_encode
= true
]]] )Esta función es idéntica a htmlspecialchars() en todos los aspectos, excepto que con htmlentities(), todos los caracteres que tienen su equivalente HTML son convertidos a estas entidades.
Si en su lugar se desea decodificar (lo inverso), se puede utilizar html_entity_decode().
string
El string de entrada.
flags
Una máscara de bits de uno o más de los siguientes indicadores, los cuales especifican como manejar las comillas, secuencias de unidad de código inválidas y el tipo de documento utilizado. Por defecto es ENT_COMPAT | ENT_HTML401.
Nombre de la constante | Descripción |
---|---|
ENT_COMPAT |
Convertirá las comillas dobles y deja solo las comillas simples. |
ENT_QUOTES |
Convertirá tanto las comillas dobles como las simples. |
ENT_NOQUOTES |
Dejará tanto las comillas dobles como las simples sin convertir. |
ENT_IGNORE |
Descartar silenciosamente unidades de secuencia de código no válidas en lugar de devolver un string vacío. El uso de este indicador se desaconseja debido a que » podría tener implicaciones de seguridad. |
ENT_SUBSTITUTE |
Reemplazar las secuencias de unidad de código inválidas con un Caracter Unicode de Reemplazo U+FFFD (UTF-8) o &#FFFD; (no UTF-8) en lugar de devolver un string vacío. |
ENT_DISALLOWED |
Reemplazar los puntos de código no válidos para el tipo de documento dado con un Caracter de Reemplazo Unicode U+FFFD (UTF-8) o &#FFFD; (no UTF-8) en lugar de dejarlos tal cual. Esto puede ser útil, por ejemplo, para asegurar la formación correcta de documentos XML con contenido externo incrustado. |
ENT_HTML401 |
Manejar el código como HTML 4.01. |
ENT_XML1 |
Manejar el código como XML 1. |
ENT_XHTML |
Manejar el código como XHTML. |
ENT_HTML5 |
Manejar el código como HTML 5. |
encoding
Un argumento opcional que define la codificación empleada al convertir caracteres.
Si se omite, el valor predeterminado de encoding
varía
según la versión de PHP en uso. En PHP 5.6 y posterior, la opción
de configuración default_charset
se emplea como valor predeterminado. PHP 5.4 y 5.5 utilizarán
UTF-8 como valor predeterminado. Las versiones anteriores de PHP emplean
ISO-8859-1.
Aunque este argumento es técnicamente opcional, se recomienda especificar el valor correcto para el código si se utiliza PHP 5.5 o anterior, o si la opción de configuración default_charset podría estar establecida incorrectamente para la entrada dada.
Están soportados los siguientes juegos de caracteres:
Juego de caracteres | Alias | Descripción |
---|---|---|
ISO-8859-1 | ISO8859-1 | Europeo occidental, Latin-1. |
ISO-8859-5 | ISO8859-5 | Juego de caracteres cirílicos poco usado (Latin/Cyrillic). |
ISO-8859-15 | ISO8859-15 | Europeo occidental, Latin-9. Añade el signo de euro, y letras del francés y finlandés ausentes en Latin-1 (ISO-8859-1). |
UTF-8 | Unicode de 8 bit multibyte compatible con ASCII. | |
cp866 | ibm866, 866 | Juego de caracteres cirílico específico de DOS. |
cp1251 | Windows-1251, win-1251, 1251 | Juego de caracteres cirílico específico de Windows. |
cp1252 | Windows-1252, 1252 | Juego de caracteres específico de Windows para Europa occidental. |
KOI8-R | koi8-ru, koi8r | Ruso. |
BIG5 | 950 | Chino tradicional, usado principalmente en Taiwán. |
GB2312 | 936 | Chino simplificado, juego de caracteres estándar nacional. |
BIG5-HKSCS | Big5 con extensiones de Hong Kong, chino tradicional. | |
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonés |
EUC-JP | EUCJP, eucJP-win | Japonés |
MacRoman | Juego de caracteres que fue utilizado por Mac OS. | |
'' | Un string vacío activa la detección desde la codificación del script (Zend multibyte), default_charset y la actual configuración regional (véase nl_langinfo() y setlocale()), en este orden. No se recomienda. |
Nota: No se reconoce cualquier otro juego de caracteres. Será utilizada en su lugar la codificación por defecto y se emitirá una advertencia.
double_encode
Cuando se desactiva double_encode
, PHP no codificará
las entidades html existentes. El valor por defecto es convertir todo.
Devuelve el string codificado.
Si el string
de entrada contiene una secuencia de unidad de código
no válida dentro de encoding
, será devuelto un
string vacío, a menos que se definan los indicadores ENT_IGNORE
o
ENT_SUBSTITUTE
.
Versión | Descripción |
---|---|
5.6.0 |
El valor predeterminado para el parámetro encoding se
cambió para que fuera el valor de la opción
de configuración
default_charset.
|
5.4.0 |
El valor por defecto del parámetro encoding se
cambió a UTF-8.
|
5.4.0 |
Se añadieron las constantes ENT_SUBSTITUTE , ENT_DISALLOWED ,
ENT_HTML401 , ENT_XML1 ,
ENT_XHTML y ENT_HTML5 .
|
5.3.0 |
Se añadió la constante ENT_IGNORE .
|
5.2.3 |
Se añadió el parámetro double_encode .
|
Ejemplo #1 Un ejemplo de htmlentities()
<?php
$str = "A 'quote' is <b>bold</b>";
// Produce: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Produce: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
Ejemplo #2 Uso de ENT_IGNORE
<?php
$str = "\x8F!!!";
// Produce un string vacío
echo htmlentities($str, ENT_QUOTES, "UTF-8");
// Produce "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>