esc_attr()
Преобразует знаки " ' < > &
в html сущности. Не создает двойного преобразования.
Функция предназначена для фильтрации строки, которую планируется выводить в значениях html атрибутов.
Работает на основе: _wp_specialchars()
Основа для: esc_attr_e(), esc_attr__()
1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.17 сек (очень быстро) | PHP 7.2.5, WP 4.9.8
Хуки из функции
Возвращает
Строку
. Очищенную для использования в атрибуте HTML тега строку.
Использование
<?php echo esc_attr( $text ) ?>
- $text(строка) (обязательный)
- Текст, который нужно преобразовать.
Примеры
#1 Пример очистки JSON данных
$qargs = [ 'per_page' => 50, 'orderby' => [ 'volume_usd' => 'desc' ], 'target_symbol' => 'foo', ]; $json = json_encode( $qargs ); $esc = esc_attr( $json ); echo htmlspecialchars( $esc ); // Выведет: // {"per_page":50,"orderby":{"volume_usd":"desc"},"target_symbol":"foo"}
#2 Пример использования:
Примеры обработки значений:
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" Notice: Array to string conversion in ...
$text = "<span>(тег) '(кавычка) \"(двойная кавычка) &(амперсанд)"; echo esc_attr( $text ); // Вернет: // <span>(тег) '(кавычка) "(двойная кавычка) &(амперсанд)
#3 Пример учета двойного кодирования:
$text = "> and &"; echo esc_attr( $text ); // > and & echo htmlspecialchars( $text ); // &gt; and &amp;
#4 Пример очистки данных на выходе
<?php $fname = ( isset( $_POST['fname'] ) ) ? $_POST['fname'] : ''; ?> <input type="text" name="fname" value="<?php echo esc_attr( $fname ); ?>">
Список изменений
С версии 2.8.0 | Введена. |
Код esc_attr() esc attr WP 6.5.2
function esc_attr( $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 an HTML attribute. * * Text passed to esc_attr() is stripped of invalid or special characters * before output. * * @since 2.0.6 * * @param string $safe_text The text after it has been escaped. * @param string $text The text prior to being escaped. */ return apply_filters( 'attribute_escape', $safe_text, $text ); }