Convierte todos los caracteres elegibles en entidades HTML

# htmlentities

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

htmlentities — Convierte todos los caracteres elegibles en entidades HTML

### Descripción

function 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 el codificado utilizado durante la conversión de caracteres. Si se omite, el valor por omisión del parámetro `encoding` es el valor de la opción de configuración default_charset. Aunque este argumento es técnicamente opcional, se recomienda encarecidamente especificar el valor correcto para su código si la opción de configuración default_charset ha sido definida incorrectamente para la entrada proporcionada.

  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 ejemplo anterior mostrará:

    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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open