htmlentities

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

htmlentitiesConverte todos os caracteres aplicáveis em entidades HTML

Descrição

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

Esta função é idêntica a htmlspecialchars() em todas as maneiras, exceto que com htmlentities(), todos os caracteres que têm equivalentes em HTML são traduzidos para essas entidades. A função get_html_translation_table() pode ser usada para retornar a tabela de tradução usada dependendo das constantes fornecidas em flags.

Se for desejada a decodificação (operação reversa) pode-se usar html_entity_decode().

Parâmetros

string

A string de entrada.

flags

Uma máscara de bits de uma ou mais das opções a seguir, que especificam como lidar com aspas, sequências inválidas de unidades de código e tipos de documentos usados. O padrão é ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Constantes disponíveis para flags
Nome da Constante Descrição
ENT_COMPAT Converte aspas duplas e não converte aspas simples.
ENT_QUOTES Converte tanto aspas duplas quanto simples.
ENT_NOQUOTES Não converte aspas duplas ou simples.
ENT_IGNORE Descarta silenciosamente sequências de unidades de código inválidas ao invés de retornar uma string vazia. O uso desta opção é desencorajado pois » pode ter implicações de segurança.
ENT_SUBSTITUTE Substitui sequências de unidade de código inválidas com um Caractere de Substituição Unicode U+FFFD (UTF-8) ou � ao invés de retornar uma string vazia.
ENT_DISALLOWED Substitui pontos de código inválidos para o tipo de documento informado por um Caractere de Substituição Unicode U+FFFD (UTF-8) ou &#FFFD; ao invés de não converter. Isto pode ser útil, por exemplo, para garantir boa formatação de documentos XML com conteúdo externo embutido.
ENT_HTML401 Lida com o código como HTML 4.01.
ENT_XML1 Lida com o código como XML 1.
ENT_XHTML Lida com o código como XHTML.
ENT_HTML5 Lida com o código como HTML 5.
encoding

Um argumento opcional que define a codificação usada na conversão de caracteres.

Se omitido, encoding assume como padrão o valor da opção de configuração default_charset .

Embora este argumento seja tecnicamente opcional, especificar o valor correto para o código é altamente recomendável se a opção de configuração default_charset puder ser definida incorretamente para a entrada fornecida.

Os seguintes conjuntos de caracteres são suportados:

Conjuntos de caracteres suportados
Conjunto de caracteres Apelidos Descrição
ISO-8859-1 ISO8859-1 Western European, Latin-1.
ISO-8859-5 ISO8859-5 Conjunto de caracteres cirílicos pouco usado (Latim/Cirílico).
ISO-8859-15 ISO8859-15 Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1 (ISO-8859-1).
UTF-8   Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 ibm866, 866 Conjunto de caracteres do DOS específico para o Russo.
cp1251 Windows-1251, win-1251, 1251 Conjunto de caracteres do Windows específico para o Russo.
cp1252 Windows-1252, 1252 Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R koi8-ru, koi8r Russo.
BIG5 950 Chinês Tradicional, usado principalmente em Taiwan.
GB2312 936 Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS   Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS SJIS, SJIS-win, cp932, 932 Japonês
EUC-JP EUCJP, eucJP-win Japonês
MacRoman   Conjunto de caracteres que era usado pelo Mac OS.
''   Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend), conjunto padrão de caracteres e localidade atual (consulte nl_langinfo() e setlocale()), nesta ordem. Não recomendado.

Note: Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será usada no lugar e um alerta será emitido.

double_encode

Quando double_encode estiver desligado, o PHP não irá codificar entidades HTML existentes. O padrão é converter tudo.

Valor Retornado

Retorna a string codificada.

Se a string de entrada contiver uma sequência de unidade de código inválida na condificação informada em encoding, uma string vazia será retornada, a menos que uma das opções ENT_IGNORE ou ENT_SUBSTITUTE esteja definida.

Registro de Alterações

Versão Descrição
8.1.0 O padrão de flags mudou de ENT_COMPAT para ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 encoding agora pode ser nulo.

Exemplos

Example #1 Um exemplo de htmlentities()

<?php
$str = "Uma 'palavra' em <b>negrito</b>";

echo htmlentities($str);
echo "\n\n";
echo htmlentities($str, ENT_COMPAT);
?>

O exemplo acima produzirá:

Uma &#039;palavra&#039; em &lt;b&gt;negrito&lt;/b&gt;

Uma 'palavra' em &lt;b&gt;negrito&lt;/b&gt

Example #2 Uso de ENT_IGNORE

<?php
$str = "\x8F!!!";

// Saída: uma string vazia
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Saída: "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Veja Também