esc_html() WP 2.8
Заменяет спецсимволы на HTML сущности в переданном тексте, возвращает отформатированный текст. Заменяются следующие символы: ", ', &, <, >
.
Что заменяется | На что заменяется |
---|---|
& (амперсанд) | & |
" (двойная кавычка) | " |
' (одинарная кавычка) | ' |
< (меньше) | < |
> (больше) | > |
Также, функция проверят текст на наличие в нем неправильной кодировки utf-8 и, по возможности, пытается исправить.
Если нужно наоборот декодировать: превратить сущности в символы, используйте wp_specialchars_decode()
Если прогнать через функцию массив, то она разрушит его:
$arr = array( 5, 6 ); $arr = esc_html( $arr ); // $arr превратиться в строку "Array"
Функция работает на основе htmlspecialchars() и меняет параметры по умолчанию. Так htmlspecialchars() делает двойное преобразование, а esc_html() нет:
echo esc_html( '& - &' ); //> & - & echo htmlspecialchars( '& - &' ); //> & - &amp;
esc_html() - это замена для устаревшей функции wp_specialchars().
Работает на основе: _wp_specialchars(), wp_check_invalid_utf8()
Основа для: esc_html_e(), esc_html__()
1 раз — 0.000037 сек (очень быстро) | 50000 раз — 0.27 сек (очень быстро) | PHP 7.0.2, WP 4.4.1
Хуки из функции
Возвращает
Строку. Отформатированный текст.
Использование
esc_html( $text );
- $text(строка) (обязательный)
- Текст для форматирования.
По умолчанию: нет
Примеры
#1. Показательный пример:
$text = "<p><b> Это \"Makes Sense\" & 'Имеет смысл'!</b></p>"; echo esc_html( $text ); /* Получим: <p><b> Это "Makes Sense" & 'Имеет смысл'!</b></p> */
Список изменений
С версии 2.8.0 | Введена. |
Код esc_html() esc html WP 5.6.2
function esc_html( $text ) {
$safe_text = wp_check_invalid_utf8( $text );
$safe_text = _wp_specialchars( $safe_text, ENT_QUOTES );
/**
* Filters a string cleaned and escaped for output in HTML.
*
* Text passed to esc_html() is stripped of invalid or special characters
* before output.
*
* @since 2.8.0
*
* @param string $safe_text The text after it has been escaped.
* @param string $text The text prior to being escaped.
*/
return apply_filters( 'esc_html', $safe_text, $text );
}