WordPress как на ладони
Прибыльная монетизация. Выгодно. Безопасно. Стабильно.

esc_attr()WP 2.8.0

Преобразует знаки " ' < > & в 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(строка) (обязательный)
Текст, который нужно преобразовать.

Примеры

0

#1 Пример использования:

$text = "<span>(тег) '(кавычка) \"(двойная кавычка) &(амперсанд)";
echo esc_attr( $text );

// Вернет:
// &lt;span&gt;(тег) &#039;(кавычка) &quot;(двойная кавычка) &amp;(амперсанд)
0

#2 Пример учета двойного кодирования:

$text = "&gt; and &amp;";
echo esc_attr( $text );         // &gt; and &amp;
echo htmlspecialchars( $text ); // &amp;gt; and &amp;amp;
0

#3 Пример очистки данных на выходе

<?php $fname = ( isset( $_POST['fname'] ) ) ? $_POST['fname'] : ''; ?>
<input type="text" name="fname" value="<?php echo esc_attr( $fname ); ?>">
0

#4 Пример очистки JSON данных

$qargs = [
	'per_page'      => 50,
	'orderby'       => [ 'volume_usd' => 'desc' ],
	'target_symbol' => 'foo',
];

$json = json_encode( $qargs );

$esc = esc_attr( $json );

echo htmlspecialchars( $esc );

// Выведет:
// {&quot;per_page&quot;:50,&quot;orderby&quot;:{&quot;volume_usd&quot;:&quot;desc&quot;},&quot;target_symbol&quot;:&quot;foo&quot;}

Список изменений

С версии 2.8.0 Введена.

Код esc_attr() WP 6.1.1

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 );
}
10 комментариев
    Войти