esc_attr() │ WP 2.8.0
Функция esc_attr() отвечает за безопасность HTML-атрибутов. Она преобразует символы <, >, &, " и ' в их HTML-сущности, чтобы предотвратить ошибки и атаки на сайт. Эта функция не выполняет двойное экранирование, что означает, что она не будет повторно обрабатывать уже экранированные строки.
Назначение
Функция предназначена для преобразования необработанных строк в корректный формат для отображения в HTML-атрибутах.
Используется в функциях
esc_attr_e()esc_attr()
Время выполнения
- 1 раз — 0.000001 сек (очень быстро)
- 50,000 раз — 0.17 сек (также быстро)
- PHP 7.2.5, WP 4.9.8
Хуки функции
attribute_escape
Возврат
Функция возвращает строку. Это экранированная строка, которую можно использовать в HTML-атрибутах.
Применение
Где $text (строка) — необработанный текст, который нужно преобразовать.
Примеры
Пример 1: Очистка данных при выводе
Пример 2: Примеры значений
Вот несколько примеров использования функции esc_attr():
var_dump( esc_attr( '0' ) ); // string(1) "0"
var_dump( esc_attr( 123 ) ); // string(3) "123"
var_dump( esc_attr( false ) ); // string(0) ""
var_dump( esc_attr( null ) ); // string(0) ""
var_dump( esc_attr( '' ) ); // string(0) ""
var_dump( esc_attr( ' ' ) ); // string(3) " "
var_dump( esc_attr( [] ) ); // string(5) "Array" (предупреждение: преобразование массива в строку)
$text = "(tag) '(quote) "(double quote) &(ampersand)";
echo esc_attr( $text );
// Возвращает:
// <span>(tag) '(quote) "(double quote) &(ampersand)
Пример 3: Пример двойного преобразования
$text = "> and &";
echo esc_attr( $text ); // > and &
echo htmlspecialchars( $text ); // > and &
Изменения
Функция esc_attr() была введена в версии 2.8.0.
Код функции
Вот код функции esc_attr(), доступный в файле wp-includes/formatting.php:
function esc_attr( $text ) {
$safe_text = wp_check_invalid_utf8( $text );
$safe_text = _wp_specialchars( $safe_text, ENT_QUOTES );
/**
- Фильтрует строку, очищенную и экранированную для вывода в HTML-атрибуте.
- Текст, переданный в esc_attr(), очищается от недопустимых или специальных символов
- перед выводом.
- @since 2.0.6
- @param string $safe_text Текст после экранирования.
- @param string $text Текст до экранирования.
*/
return apply_filters( 'attribute_escape', $safe_text, $text );
}
Связанные функции
- esc_attr__()
- esc_attr_e()
- esc_html()
- esc_html__()
- esc_html_e()
- esc_js()
- esc_sql()
- esc_textarea()
- esc_url()
- esc_url_raw()
- tag_escape()
- urlencode_deep()
- wp_specialchars_decode()
- wp_strip_all_tags()
Очистка и экранирование
К таким функциям относятся:
- sanitize_email()
- sanitize_file_name()
- sanitize_html_class()
- sanitize_option()
- sanitize_post_field()
- sanitize_text_field()
- sanitize_textarea_field()
- sanitize_title()
- sanitize_title_with_dashes()
- validate_file()
- wp_check_invalid_utf8()
- wp_filter_kses()
- wp_filter_nohtml_kses()
- wp_filter_post_kses()
- wp_kses()
- wp_kses_data()
Эти функции помогают в дополнительной обработке и защите данных.