Funkcja PHP htmlspecialchars() | #! Shebang

Funkcja PHP htmlspecialchars()

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 |:
ENT_COMPAT
Konwersja tylko cudzysłowów podwójnych.
ENT_QUOTES
Konwersja cudzysłowów pojedynczych i podwójnych.
ENT_NOQUOTES
Żadne cudzysłowy nie będą konwertowane.
ENT_IGNORE
Ignorowanie nieprawidłowych jednostek kodowych. Nie zaleca się używania tej flagi ze względów bezpieczeństwa.
ENT_SUBSTITUTE
Zamiana nieprawidłowych jednostek kodowych na znak zastępczy Unicode (ang. Unicode Replacement Character) U+FFFD (w UTF-8) lub &#xFFFD; (jako encja szesnastkowa HTML) zamiast na pusty łańcuch.
ENT_DISALLOWED
Zamiana nieprawidłowych jednostek kodowych na znak zastępczy Unicode U+FFFD (w UTF-8) lub &#xFFFD; (jako encja szesnastkowa HTML) zamiast pozostawiać je bez zmian. Może się przydać do zapewniania poprawności składniowej dokumentów XML.
ENT_HTML401
Traktowanie dokumentu jako HTML 4.01.
ENT_XML1
Traktowanie dokumentu jako XML 1.
ENT_XHTML
Traktowanie dokumentu jako XHTML.
ENT_HTML5
Traktowanie dokumentu jako HTML 5.
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:

  • ISO-8859-1 lub ISO8859-1
  • ISO-8859-5 lub ISO8859-5
  • ISO-8859-15 lub ISO8859-15
  • UTF-8
  • cp866 lub ibm866 lub 866
  • cp1251 lub Windows-1251 lub win-1251 lub 1251
  • cp1252 lub Windows-1252 lub 1252
  • KOI8-R lub koi8-ru lub koi8r
  • BIG5 lub 950
  • GB2312 lub 936
  • BIG5-HKSCS lub Big5
  • Shift_JIS lub SJIS lub SJIS-win lub cp932 lub 932
  • EUC-JP lub EUCJP lub eucJP-win
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.

Udostępnij:
Share

Podobał Ci się ten artykuł?

Oceń go!

Średnia 0 / 5. Liczba głosów: 0

Jeszcze nikt nie głosował. Wyprzedź innych i zagłosuj.

Skoro spodobał Ci się ten artykuł...

Poleć go znajomym!

Ojej :( Powiedz nam, co powinniśmy poprawić!

blank
Podoba Ci się ta strona?

Pomóż nam się rozwijać, wykupując płatne konto. Dzięki temu będziemy mogli tworzyć dla Ciebie jeszcze więcej ciekawych treści, a Ty pozbędziesz się reklam.

Dodaj komentarz