# htmlentities

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

htmlentities — Convierte todos los caracteres aplicables a entidades HTML

### Descripción

htmlentities(
string `$string`,
int `$flags` = ENT_COMPAT | ENT_HTML401,
string `$encoding` = ini_get("default_charset"),
bool `$double_encode` = `true`
): string

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

### Parámetros

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

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

  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 se desactiva `double_encode`, PHP no codificará las entidades html existentes. El valor por defecto es convertir todo.

### Valores devueltos

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

### Historial de cambios

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

### Ejemplos

Ejemplo #1 Un ejemplo de htmlentities()

`<?php
$str = "A 'quote' is <b>bold</b>";
// Produce: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);
// Produce: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
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");
?>`

### Ver también

- html_entity_decode() - Convierte todas las entidades HTML a sus caracteres correspondientes
- get_html_translation_table() - Devuelve la tabla de traducción utilizada por htmlspecialchars y htmlentities
- htmlspecialchars() - Convierte caracteres especiales en entidades HTML
- nl2br() - Inserta saltos de línea HTML antes de todas las nuevas líneas de un string
- urlencode() - Codifica como URL una cadena