Функция esc_html() в WordPress
Что такое esc_html()?
Функция esc_html() была добавлена в WordPress в версии 2.8.0. Она предназначена для защиты текстовых данных при выводе на веб-страницах. Эта функция преобразует специальные символы, такие как <, >, &, ", и ', в HTML-сущности. Это важно для предотвращения ошибок и атак на сайт, связанных с HTML-кодом.
Замена символов:
| Символ | Сущность |
|---|---|
| & | & |
| " | " |
| ' | ' |
| < | < |
| > | > |
Корректировка кодировки UTF-8
esc_html() также проверяет текст на корректность кодировки UTF-8 и, если возможно, исправляет её. Если вам нужно, наоборот, декодировать текст из HTML-сущностей обратно в символы, используйте функцию wp_specialchars_decode().
Как использовать esc_html()?
Если вы передадите массив в esc_html(), он будет преобразован в строку. Например:
$arr = array( 5, 6 );
$arr = esc_html( $arr ); // $arr будет строкой "Array"
Функция основана на htmlspecialchars() и изменяет её параметры по умолчанию, чтобы избежать двойного кодирования. Например:
echo esc_html( '& - &' ); // результат: & - &
echo htmlspecialchars( '& - &' ); // результат: & - &
Примечание
Функция esc_html() является заменой устаревшей функции wp_specialchars().
Применение функции
Синтаксис
esc_html( $text );
$text(строка) — текст для преобразования, который является обязательным.
Пример
Вот простой пример использования функции:
$text = " Это "имеет смысл" & 'имеет смысл'!
";
echo esc_html( $text );
/* результат:
<p><b> Это "имеет смысл" & 'имеет смысл'!</b></p>
*/
Возвращаемое значение
Функция esc_html() возвращает строку — преобразованный текст.
Время выполнения функции
Функция очень быстрая:
- 1 выполнение — 0.000037 сек (очень быстро)
- 50,000 раз — 0.27 сек (очень быстро)
- Тестировалось на PHP 7.0.2, WP 4.4.1
Связанные функции
Функция esc_html() является частью группы функций, предназначенных для очистки и экранирования данных. Вот некоторые из них:
esc_attr()— экранирование для атрибутов HTML.esc_js()— экранирование для JavaScript.esc_sql()— экранирование для SQL-запросов.esc_url()— экранирование для URL-адресов.
Заключение
Использование esc_html() помогает защитить ваш сайт от ошибок и уязвимостей, связанных с неправильной обработкой HTML-символов. Она делает вывод данных более безопасным и надежным.