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

html_entity_decode()

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

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

PHP-синтаксис функции html_entity_decode()

php
string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

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

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

Пример использования PHP html_entity_decode()

php
<?php
$html_string = "&lt;h1&gt;Hello World&lt;/h1&gt;";
$decoded_string = html_entity_decode($html_string);
echo $decoded_string;
?>

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

Результат выполнения этого кода будет следующим:


html
<h1>Hello World</h1>

Как видите, функция успешно декодирует HTML-сущности обратно в исходные символы.

Функция html_entity_decode() также может принимать второй параметр $flags, который определяет, как обрабатывать кавычки и какой набор сущностей использовать. Значение по умолчанию для $flagsENT_COMPAT | ENT_HTML401. Обратите внимание, что ENT_COMPAT декодирует только двойные кавычки, тогда как ENT_QUOTES декодирует как одинарные, так и двойные кавычки. Для повышения надёжности также можно использовать флаги ENT_IGNORE или ENT_SUBSTITUTE, чтобы корректно обрабатывать невалидные сущности.

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

Как использовать PHP html_entity_decode()?

php
<?php
$html_string = "&lt;p&gt;I'm a paragraph&lt;/p&gt;";
$decoded_string = html_entity_decode($html_string, ENT_QUOTES);
echo $decoded_string;
?>

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

Результат выполнения этого кода будет следующим:


html
<p>I'm a paragraph</p>

С флагом ENT_QUOTES теги абзацев и одинарная кавычка восстанавливаются корректно.

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

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

Пример использования функции html_entity_decode() с конкретной кодировкой

php
<?php
$html_string = "&lt;h1&gt;Hello World&lt;/h1&gt;";
$decoded_string = html_entity_decode($html_string, ENT_COMPAT | ENT_HTML401, "UTF-8");
echo $decoded_string;
?>

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

Результат выполнения этого кода будет следующим:


html
<h1>Hello World</h1>

Указанная кодировка UTF-8 гарантирует точное декодирование сущностей в соответствии с набором символов.

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

Надеемся, эта статья помогла вам лучше понять работу функции html_entity_decode() в PHP.

Practice

Что делает функция `html_entity_decode()` в PHP?

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

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