Função htmlspecialchars() do PHP
Exemplo
Converte os caracteres pré-definidos "<" (menor que) e ">" (maior que) em entidades HTML:
<?php $str = "This is some <b>bold</b> text."; echo htmlspecialchars($str); ?>
A saída HTML do código acima é como segue (ver código-fonte):
<!DOCTYPE html> <html> <body> This is some <b>bold</b> text. </body> </html>
A saída do navegador do código acima é:
This is some <b>bold</b> text.
Definição e uso
A função htmlspecialchars() converte os caracteres pré-definidos em entidades HTML.
Caracteres pré-definidos são:
- & (e) torna-se &
- " (aspas duplas) torna-se "
- ' (aspas simples) torna-se '
- < (menor que) torna-se <
- > (maior que) torna-se >
Dica:Para converter entidades HTML especiais em caracteres, use htmlspecialchars_decode() Função.
Sintaxe
htmlspecialchars(string,flags,character-set,double_encode)
Parâmetros | Descrição |
---|---|
string | Obrigatório. Especifica a string a ser convertida. |
flags |
Opcional. Especifica como lidar com aspas, codificação inválida e qual tipo de documento usar. Tipos de aspas disponíveis:
Codificação inválida:
Flags adicionais para especificar o tipo de documento a ser usado:
|
character-set |
Opcional. Uma string que define o conjunto de caracteres a ser usado. Valores permitidos:
Comentário:Em versões do PHP anteriores ao 5.4, os conjuntos de caracteres não reconhecidos serão ignorados e substituídos por ISO-8859-1. A partir do PHP 5.4, os conjuntos de caracteres não reconhecidos serão ignorados e substituídos por UTF-8. |
double_encode |
Opcional. Booleano, define se as entidades HTML existentes devem ser codificadas.
|
Detalhes técnicos
Retorno: |
Retorna a string convertida. Se string Se contiver codificações inválidas, retornará uma string vazia, a menos que os sinais ENT_IGNORE ou ENT_SUBSTITUTE sejam definidos. |
Versão do PHP: | 4+ |
Registro de atualizações: |
No PHP 5,character-set O valor padrão do parâmetro foi alterado para UTF-8. No PHP 5.4, foram adicionados: ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 e ENT_XHTML. No PHP 5.3, foi adicionado ENT_IGNORE. No PHP 5.2.3, foi adicionado double_encode Parâmetros. Em PHP 4.1, foi adicionado character-set Parâmetros. |
Mais Exemplos
Exemplo 1
Converter alguns caracteres pré-definidos em entidades HTML:
<?php $str = "Bill & 'Steve'"; echo htmlspecialchars($str, ENT_COMPAT); // Apenas converter aspas duplas echo "<br>"; echo htmlspecialchars($str, ENT_QUOTES); // Converter aspas duplas e singlas echo "<br>"; echo htmlspecialchars($str, ENT_NOQUOTES); // Não converter nenhuma aspa ?>
A saída HTML do código acima é como segue (ver código-fonte):
<!DOCTYPE html> <html> <body> Bill & 'Steve'<br> Bill & 'Steve'<br> Bill & 'Steve' </body> </html>
A saída do navegador do código acima é:
Bill & 'Steve' Bill & 'Steve' Bill & 'Steve'
Exemplo 2
Converter aspas duplas em entidades HTML:
<?php $str = 'I love "PHP".'; echo htmlspecialchars($str, ENT_QUOTES); // Converter aspas duplas e singlas ?>
A saída HTML do código acima é como segue (ver código-fonte):
<!DOCTYPE html> <html> <body> Eu amo "PHP". </body> </html>
A saída do navegador do código acima é:
Eu amo "PHP".