W3docs

htmlspecialchars()

The htmlspecialchars() function is used to convert special characters to their corresponding HTML entities. The syntax of the htmlspecialchars() function is as

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

Синтаксис 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
$string = "Hello <strong>World</strong>!";
$encoded_string = htmlspecialchars($string);
echo $encoded_string;
?>

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

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

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

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

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

<?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
$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
$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?