htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentitiesConvierte todos los caracteres elegibles en entidades HTML

Descripción

htmlentities(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string

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().

Parámetros

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.

Constantes disponibles para flags
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:

Juegos de caracteres soportados
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.

Valores devueltos

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.

Historial de cambios

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.

Ejemplos

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 &#039;apostrophee&#039; est &lt;b&gt;gras&lt;/b&gt;

Un 'apostrophe' est &lt;b&gt;gras&lt;/b&gt

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");
?>

Ver también