htmlspecialchars Преобразовывает специальные символы в HTML-сущности &reftitle.description; stringhtmlspecialchars stringstring intflagsENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 stringnullencoding&null; booldouble_encode&true; Ряд символов в HTML несёт отдельный смысл и для сохранения значения такие символы представляют HTML-сущностями. Функция возвращает строку с этими преобразованиями. Вместо этой функции вызывают функцию htmlentities, когда требуется перевести каждую входную подстроку, у которой есть связанная именованная сущность. Если у входной строки, которую передали в эту функцию, и результирующего документа одинаковый набор символов, то этой функции хватит, чтобы подготовить входные данные для вставки в бо́льшую часть контекстов HTML-документа. Однако, если данные содержат символы, которые не закодированы в наборе символов результирующего документа, и требуется сохранить эти символы (как числовые или именованные сущности), то как этой функции, так и функции htmlentities (которые преобразовывают только подстроки, у которых есть эквивалентные именованные сущности), будет недостаточно. Вместо них пользуются функцией mb_encode_numericentity. Преобразования Символ Замена & (амперсанд) &amp; " (двойные кавычки) &quot;, без флага ENT_NOQUOTES ' (одинарные кавычки) &#039; для документов стандарта ENT_HTML401 или &apos; для документов стандартов ENT_XML1, ENT_XHTML или ENT_HTML5, но только с флагом ENT_QUOTES < (меньше) &lt; > (больше) &gt;
&reftitle.parameters; string Конвертируемая строка (string). flags Битовая маска из следующих флагов, которые определяют, как обрабатывать кавычки, неправильные последовательности кодовых единиц и тип документа. Флаги по умолчанию: ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. Доступные значения параметра <parameter>flags</parameter> Название константы Описание ENT_COMPAT Преобразовывает двойные кавычки, одинарные кавычки не изменяются. ENT_QUOTES Преобразовывает как двойные, так и одинарные кавычки. ENT_NOQUOTES Оставляет без изменения как двойные, так и одинарные кавычки. ENT_IGNORE Без предупреждения отбрасывает неправильные последовательности кодовых единиц вместо возврата пустой строки. Передача этого флага не рекомендуется, поскольку это небезопасно. ENT_SUBSTITUTE Заменяет неправильные последовательности кодовых единиц символом замены Юникода вместо возврата пустой строки: U+FFFD для строк в кодировке UTF-8 и &#FFFD; для строк в других кодировках. ENT_DISALLOWED Заменяет неверные кодовые точки для заданного типа документа символом замены юникода U+FFFD для строк в кодировке UTF-8 или &#FFFD; для строк в других кодировках вместо того, чтобы оставлять всё как есть. Это бывает полезно для правильного оформления XML-документов, в которые встроили внешнее содержимое. ENT_HTML401 Обрабатывает код по правилам стандарта HTML 4.01. ENT_XML1 Обрабатывает код по правилам стандарта XML 1. ENT_XHTML Обрабатывает код по правилам стандарта XHTML. ENT_HTML5 Обрабатывает код по правилам стандарта HTML 5.
encoding &strings.parameter.encoding; Для целей этой функции кодировки ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 и KOI8-R практически эквивалентны, при условии, что сама строка string содержит допустимые для заданной кодировки символы, поскольку символы, которые изменяет функция htmlspecialchars, занимают одинаковые позиции в перечисленных кодировках. &reference.strings.charsets; double_encode Когда параметр double_encode отключён, PHP не будет кодировать существующие HTML-сущности. По умолчанию функция преобразовывает каждый символ.
&reftitle.returnvalues; Функция возвращает преобразованную строку (string). Функция вернёт пустую строку, если входная строка string содержит недопустимую для кодировки encoding последовательность кодовых единиц, если только не установили флаг ENT_IGNORE или ENT_SUBSTITUTE. &reftitle.changelog; &Version; &Description; 8.1.0 Значение по умолчанию для параметра flags изменили с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401. &reftitle.examples; Пример использования функции <function>htmlspecialchars</function> Test", ENT_QUOTES); echo $new; // <a href='test'>Test</a> ?> ]]> &reftitle.notes; Обратите внимание, функция выполняет только описанные преобразования. Для преобразования всех символов вызывают функцию htmlentities. Когда значение параметра flags неоднозначно, функция применяет следующие правила: Значением по умолчанию становится флаг ENT_NOQUOTES, если одновременно отсутствуют флаги ENT_COMPAT, ENT_QUOTES и ENT_NOQUOTES. Если одновременно присутствуют два или более флага ENT_COMPAT, ENT_QUOTES и ENT_NOQUOTES, у флага ENT_QUOTES будет больший приоритет. Следующим по приоритету будет флаг ENT_COMPAT. Флагом по умолчанию становится флаг ENT_HTML401, если не установили ни одну из констант ENT_HTML401, ENT_HTML5, ENT_XHTML и ENT_XML1. Если одновременно установили больше одного флага 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. &reftitle.seealso; get_html_translation_table htmlspecialchars_decode strip_tags htmlentities nl2br