(PHP 4, PHP 5, PHP 7, PHP 8)
htmlentities — Convierte todos los caracteres elegibles en entidades HTML
$string
,$flags
= ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,$encoding
= null
,$double_encode
= true
htmlentities() es idéntica a la función
htmlspecialchars(), salvo que todos los caracteres
que tienen equivalentes en entidades HTML son efectivamente
traducidos.
La función get_html_translation_table() puede ser utilizada
para retornar la tabla de traducción utilizada
en función de las constantes flags
proporcionadas.
Si se desea realizar la operación inversa, se debe utilizar la función html_entity_decode().
string
El string de entrada.
flags
Una máscara de uno o varios flags siguientes, que determinan la forma
en que las comillas serán gestionadas, cómo las secuencias de código inválido serán
gestionadas así como el tipo de documento utilizado. Por omisión, es
ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
.
Constante | Descripción |
---|---|
ENT_COMPAT |
Convierte las comillas dobles e ignora las comillas simples. |
ENT_QUOTES |
Convierte las comillas dobles y las comillas simples. |
ENT_NOQUOTES |
Ignora las comillas dobles y las comillas simples. |
ENT_IGNORE |
Ignora las secuencias de caracteres inválidas en lugar de retornar un string vacío. El uso de este flag es fuertemente desaconsejado por » razones de seguridad. |
ENT_SUBSTITUTE |
Reemplaza las secuencias de código inválido con un carácter de reemplazo Unicode U+FFFD (UTF-8) o &#FFFD; (de lo contrario) en lugar de retornar un string vacío. |
ENT_DISALLOWED |
Reemplaza los puntos de código inválidos del documento proporcionado con un carácter de reemplazo Unicode U+FFFD (UTF-8) o &#FFFD; (de lo contrario) en lugar de dejarlo tal cual. Esto puede ser útil para, por ejemplo, asegurar el correcto formato de documentos XML que contienen contenido externo. |
ENT_HTML401 |
Gestiona el código como HTML 4.01. |
ENT_XML1 |
Gestiona el código como XML 1. |
ENT_XHTML |
Gestiona el código como XHTML. |
ENT_HTML5 |
Gestiona 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 double_encode
está desactivado, PHP no codificará
las entidades html existentes. Por omisión, todo es convertido.
Retorna el string codificado.
Si la entrada string
contiene una secuencia de
código inválido en el encoding encoding
proporcionado, un string vacío será retornado, a menos que el flag
ENT_IGNORE
o el flag
ENT_SUBSTITUTE
esté definido.
Versión | Descripción |
---|---|
8.1.0 |
flags cambió de ENT_COMPAT a
ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 .
|
8.0.0 |
encoding ahora es nullable.
|
Ejemplo #1 Ejemplo con htmlentities()
<?php
$str = 'Un \'apostrophe\' en <strong>gras</strong>';
echo htmlentities($str);
echo "\n\n";
echo htmlentities($str, ENT_COMPAT);
?>
El resultado del ejemplo sería:
Un 'apostrophee' est <b>gras</b> Un 'apostrophe' est <b>gras</b>
Ejemplo #2 Utilización de ENT_IGNORE
<?php
$str = "\x8F!!!";
// Muestra un string vacío
echo htmlentities($str, ENT_QUOTES, "UTF-8");
// Muestra "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>