Funkcja PHP htmlspecialchars() zamienia wszystkie znaki w tekście, które mają specjalne znaczenie w języku HTML na odpowiadające im encje.
Funkcja ta jest powszechnie używana jako środek bezpieczeństwa przed wysłaniem na stronę internetową jakichkolwiek danych przesyłanych do aplikacji PHP przez użytkownika. Chroni między innymi przed atakami typu atakami typu XSS.
Działanie funkcji htmlspecialchars() polega na zamianie na encje HTML tylko pięciu znaków: &, ", ', < oraz > (można to sprawdzić za pomocą funkcji get_html_translation_table()) i służy ona tylko do przygotowywania tekstu do umieszczenia w dokumencie HTML serwowanym użytkownikowi.
Jeśli pracujesz z dokumentami wielojęzycznymi, masz do czynienia ze starymi systemami lub z jakiegoś innego powodu istnieje ryzyko błędnej interpretacji znaków, być może konieczne będzie użycie funkcji mb_encode_numericentity() zamiast htmlspecialchars().
Składnia funkcji PHP htmlspecialchars()
Funkcja PHP htmlspecialchars() ma następującą składnię:
htmlspecialchars(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string
Parametry
| Parametr | Opis |
|---|---|
| string | Parametr obowiązkowy. Łańcuch, w którym znaki specjalne HTML mają zostać zamienione na encje HTML. |
| flags | Maska bitowa określająca sposób traktowania cudzysłowów i nieprawidłowych jednostek kodowych oraz stosowany typ dokumentu. Może zawierać jedną lub więcej z poniższych wartości połączonych operatorem logicznym |:
|
| encoding | Określa kodowanie, które ma być zastosowane podczas konwersji znaków. Jeśli parametr ten zostanie pominięty, to używane jest kodowanie domyślne ustawione w opcji default_charset w pliku php.ini.
Lista obsługiwanych zestawów znaków:
|
| double_encode | Włączenie tego parametru powoduje, że istniejące encje HTML nie są konwertowane. |
Wartość zwrotna
Funkcja PHP htmlspecialchars() zwraca przetworzony łańcuch znaków.
Typ zwrotny: string.
