PHP htmlspecialchars
(PHP 4, PHP 5, PHP 7)
htmlspecialchars — Преобразуване на специални знаци в HTML обекти
В HTML някои знаци имат специални значения и трябва да бъдат представени като HTML обекти, за да запазят значението си. Тази функция връща низа, върху който са извършени тези трансформации. Ако трябва да конвертирате всички възможни обекти, използвайте htmlentities().
Ако входният низ, предаден на тази функция, и полученият документ използват едно и също кодиране на знаци, тогава тази функция е достатъчна, за да подготви данните за вмъкване в повечето части на HTML документа. Ако обаче данните съдържат знаци, които не са дефинирани в кодирането на знаци на получения документ и очаквате да съхраните тези знаци (като числови или наименувани обекти), тогава това и функциите htmlentities() (които преобразуват само поднизове със съответните обекти) няма да са достатъчни. Трябва да се използва функцията mb_encode_numericity().
Списък с параметри
Побитова маска от следните флагове, която определя как се обработват кавички, невалидни кодирания и тип документ, който да се използва. По подразбиране е ENT_COMPAT ENT_HTML401.
Незадължителен аргумент, който указва кодирането, използвано при конвертиране на знаци.
Ако не е посочено, стойността по подразбиране за кодиране зависи от използваната версия на PHP. В PHP 5.6 и по-нови, конфигурационната опция default_charset се използва за стойност по подразбиране. PHP 5.4 и 5.5 използват UTF-8 по подразбиране. По-ранните версии на PHP използват ISO-8859-1.
Въпреки че този аргумент е технически незадължителен, силно се препоръчва да предоставите правилната стойност за вашия код, ако използвате PHP 5.5 или по-нова версия, илиако вашата конфигурационна опция default_charset може да е зададена неправилно за входа.
За целите на тази функция, ISO-8859-1, ISO-8859-15, UTF-8, CP866, CP1251, CP1252 и KOI8-R кодиране по същество ще останат на всички места, които са в състояние на всички, като самите ще съдържат валидни символи в посочените кодиране, след това, модифицирани от тях.
Поддържат се следните кодировки:
Забележка : Други кодировки не се поддържат, вместо това ще се приложи кодирането по подразбиране и ще се генерира предупреждение.
Ако опцията double_encode е деактивирана, тогава PHP няма да конвертира съществуващи html обекти. По подразбиране всичко се конвертира без ограничения.
Върнати стойности
Ако низът на входния низ съдържа невалидна последователност от знаци в указаното кодиране, тогава ще бъде върнат празен низ, ако флаговетеENT_IGNORE илиENT_SUBSTITUTE не са зададени.
Списък на промените
Пример #1 Пример за използванеhtmlspecialchars()
Бележки
Забележка :
Имайте предвид, че функцията не извършва други трансформации освен описаните по-горе. За да конвертирате всички HTML обекти, използвайте htmlentities().
Забележка :
В случай на нееднозначна стойност на флаговете се прилагат следните правила:
- Ако константитеENT_COMPAT,ENT_QUOTES иENT_NOQUOTES липсват едновременно,ENT_NOQUOTES ще се използва по подразбиране.
- Ако две или повече константиENT_COMPAT,ENT_QUOTES иENT_NOQUOTES присъстват едновременно,ENT_QUOTES ще има предимство. Следващ по приоритетще бъдеENT_COMPAT.
- Ако нито една от константитеENT_HTML401,ENT_HTML5,ENT_XHTML иENT_XML1 не присъства,ENT_HTML401 ще се използва по подразбиране.
- Ако две или повече константиENT_HTML401,ENT_HTML5,ENT_XHTML,ENT_XML1 присъстват едновременно, тогава приоритетът ще бъде:ENT_HTML5, след товаENT_XHTML,ENT_XML1 и след товаENT_HTML401.
- Ако две или повече константиENT_DISALLOWED,ENT_IGNORE,ENT_SUBSTITUTE присъстват едновременно,ENT_IGNORE ще има най-висок приоритет, следван отENT_SUBSTITUTE.
Вижте също
- get_html_translation_table() - Връща таблицата за превод, използвана от функциите htmlspecialchars и htmlentities
- htmlspecialchars_decode() - Преобразува специални HTML обекти обратно в съответните им знаци
- strip_tags() - Премахва HTML и PHP тагове от низ
- htmlentities() - Преобразува всички възможни знаци в съответните HTML обекти
- nl2br() - Вмъкване на HTML код за прекъсване на ред преди всеки нов ред