htmlspecialchars

(PHP 3, PHP 4 , PHP 5)

htmlspecialchars --  Converte caracteres especiais para a realidade HTML

Descrição

string htmlspecialchars ( string string [, int quote_style [, string charset]] )

Certos caracteres tem significado especial em HTML, e seriam representados pela realidade HTML se eles estão preservanado seus significados. Esta função retorna uma string com algumas destas conversões feitas; As transformações feitas são aquelas mais úteis para programação web. Se você precisa que sejam transformados todos os caracteres da realidade HTML, use htmlentities() no lugar dela.

Esta função é útil na prevenção de textos fornecidos pelo usuário contendo marcação HTML, tal como um quadro de mensgens ou guest book. O segundo argumento opcional, quote_style, conta à função o que fazer com os caracteres aspas simples e dupla. O modo padrão, ENT_COMPAT, é o modo mais compatível com a atualidade, apenas transforma a aspas-dupla e deixa a aspas-simples como está. Se ENT_QUOTES está definida, ambas transformadas e se ENT_NOQUOTES está definida nenhuma das duas são modificadas.

As traduções executadas são:

Exemplo 1. htmlspecialchars() exemplo

<?php
$new
= htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo
$new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;     
?>

Note que esta função não converte nada além do que foi listado acima. Para completa realidade de conversões, veja htmlentities(). Suporte para o segundo argumento opcional foi adicionado no PHP 3.0.17 e PHP 4.0.3.

O terceiro argumento define o conjunto de caracteres usados na conversão. O conjunto de caracteres padrão é ISO-8859-1. Suporte para o terceiro argumento foi adicionado no PHP 4.1.0.

Os seguintes conjuntos de caracteres são suportados no PHP 4.3.0 e posterior.

Tabela 1. Conjuntos de caracteres suportados

Conjunto de caracteresApelidosDescrição
ISO-8859-1ISO8859-1 Western European, Latin-1
ISO-8859-15ISO8859-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.
cp866ibm866, 866 Conjunto de caracteres do DOS específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1251Windows-1251, win-1251, 1251 Conjunto de caracteres do Windows específico para o Russo. Este conjunto de caracteres é suportado no 4.3.2.
cp1252Windows-1252, 1252 Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-Rkoi8-ru, koi8r Russo. Este conjunto de caracteres é suportado no 4.3.2.
BIG5950 Chinês Tradicional, usado principalmente em Taiwan.
GB2312936 Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS  Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JISSJIS, 932 Japonês
EUC-JPEUCJP Japonês

Nota: Qualquer outro conjunto de caracteres não é reconhecido e será usado o ISO-8859-1.

Veja também get_html_translation_table(), htmlentities(), strip_tags() e nl2br().