Перейти к содержимому

htmlspecialchars()

Функция htmlspecialchars() используется для преобразования специальных символов в соответствующие HTML-сущности. Синтаксис функции htmlspecialchars() выглядит следующим образом:

Синтаксис PHP

php
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

Функция принимает один обязательный параметр $string, представляющий строку, содержащую специальные символы для преобразования. У функции также есть три необязательных параметра: $flags, $encoding и $double_encode.

Ниже приведен пример использования функции htmlspecialchars():

Базовый пример

php
<?php
$string = "Hello <strong>World</strong>!";
$encoded_string = htmlspecialchars($string);
echo $encoded_string;
?>

В этом примере у нас есть переменная строки $string, содержащая некоторый текст со специальными символами. Мы используем функцию htmlspecialchars() для преобразования специальных символов в соответствующие HTML-сущности.

Как видите, теги <strong> были преобразованы в &lt;strong&gt; и &lt;&#8203;/strong&gt;.

Функция htmlspecialchars() также может принимать второй параметр $flags, который указывает, как обрабатывать кавычки и какой набор сущностей использовать. Значение по умолчанию для $flagsENT_COMPAT | ENT_HTML401, которое преобразует двойные кавычки в &quot;, но оставляет одинарные кавычки без изменений. Для преобразования как одинарных, так и двойных кавычек используйте флаг ENT_QUOTES.

Ниже приведен пример использования функции htmlspecialchars() с флагом ENT_QUOTES:

Использование флага ENT_QUOTES

php
<?php
$string = "I'm a paragraph";
$encoded_string = htmlspecialchars($string, ENT_QUOTES);
echo $encoded_string;
?>

В этом примере у нас есть переменная строки $string, содержащая текст с одинарной кавычкой. Мы используем функцию htmlspecialchars() с флагом ENT_QUOTES для преобразования специальных символов в соответствующие HTML-сущности, а также для обработки одинарной кавычки.

Как видите, одинарная кавычка была преобразована в &#039;.

Функция htmlspecialchars() также может принимать третий параметр $encoding, который указывает кодировку символов выходной строки. Значение по умолчанию для $encoding соответствует значению конфигурационной опции default_charset.

Ниже приведен пример использования функции htmlspecialchars() с указанной кодировкой:

Указание кодировки

php
<?php
$string = "Hello World!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8");
echo $encoded_string;
?>

В этом примере у нас есть переменная строки $string, содержащая некоторый текст. Мы используем функцию htmlspecialchars() с кодировкой UTF-8 для преобразования специальных символов в соответствующие HTML-сущности.

Как видите, вывод корректно отражает указанную кодировку UTF-8.

Функция htmlspecialchars() также может принимать четвертый параметр $double_encode, который указывает, нужно ли кодировать существующие сущности. Значение по умолчанию для $double_encodetrue, что означает, что существующие сущности будут закодированы.

Ниже приведен пример использования функции htmlspecialchars() с параметром $double_encode, установленным в false:

Отключение двойного кодирования

php
<?php
$string = "Hello &lt;strong&gt;World&lt;/strong&gt;!";
$encoded_string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, "UTF-8", false);
echo $encoded_string;
?>

В этом примере у нас есть переменная строки $string, содержащая текст с HTML-сущностями. Мы используем функцию htmlspecialchars() с параметром $double_encode, установленным в false, для преобразования специальных символов в соответствующие HTML-сущности без кодирования существующих сущностей.

Как видите, существующие сущности &lt; и &gt; остаются без изменений, поскольку $double_encode установлен в false.

Функция htmlspecialchars() — это полезный инструмент для работы с HTML-данными, например, данными из HTML-формы или HTML-файла. Она помогает преобразовывать специальные символы в соответствующие HTML-сущности, делая ваш код более универсальным и гибким. Освоив эту функцию, вы сможете стать более квалифицированным разработчиком на PHP.

Мы надеемся, что эта статья помогла вам лучше понять функцию htmlspecialchars() в PHP.

Практика

Какова основная задача функции htmlspecialchars() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.