sanitize_html_class() WP 2.8.0

Підготовляє текст для використання його в HTML атрибуті class: видаляє всі невідповідні символи.

Функція видаляє всі октети та всі символи, що не входять до значення: A-Z, a-z, 0-9, _, -.
Якщо в результаті вийде порожній рядок, функція поверне альтернативний клас, вказаний у другому параметрі $fallback .

Перед поверненням даних результат проганяється через фільтр sanitize_html_class.

Зверніть увагу, що функція обробляє лише один клас. Тобто. якщо передати одночасно 2 класу так: foo bar, пробіл буде видалено і отримаємо: foobar.

1 раз – 0.000024 сек
(дуже швидко) | 50000 разів – 0.08 сек
(швидкість світла) |
PHP 7.1.2, WP 4.7.3

Хуки з функції

Повертає

Строку.

Використання

$ sanitized = sanitize_html_class( $class, $fallback );
$class
(рядок) (обов’язковий)
Рядок (назва класу) яку потрібно очистити.
$fallback
(рядок)
Значення, яке потрібно повернути, якщо оригінальне значення після очищення виявиться порожнім рядком.


За замовчуванням: ”

Приклади

0

#1 Демонстрація роботи функції

$text = 'Пробний текст';
echo sanitize_html_class($text); // '' (порожня стрічка)

$text = 'Some text';
echo sanitize_html_class($text); // Sometext

$text = 'foo bar';
echo sanitize_html_class($text); // foobar

$text = 'my-class';
echo sanitize_html_class($text); // my-class

$text = 'Приклад англійською - Example';
echo sanitize_html_class($text); //-Example

Але: Імена класів не повинні починатися з цифр, і ця функція не враховує цього. Ця функція повертає рядок, що починається з цифр, які за визначенням W3 не є допустимими класами іменами.

$text = '2foo';
echo sanitize_html_class($text); // 2foo

список змін

З версії 2.8.0Введено.

Код sanitize_html_class() WP 6.0.2

function sanitize_html_class( $class, $fallback = '' ) {
	// Strip out any %-encoded octets.
	$sanitized = preg_replace( '|%[a-fA-F0-9][a-fA-F0-9]|', '', $class );

	// Limit to AZ, az, 0-9, '_', '-'.
	$sanitized = preg_replace( '/[^A-Za-z0-9_-]/', '', $sanitized );

	if ( '' === $sanitized && $fallback ) {
		return sanitize_html_class($fallback);
	}
	/**
	 * Filters a sanitized HTML class string.
	 *
	 * @ Since 2.8.0
	 *
	 * @param string $sanitized The sanitized HTML class.
	 * @param string $class HTML class before sanitization.
	 * @param string $fallback The fallback string.
	 */
	return apply_filters( 'sanitize_html_class', $sanitized, $class, $fallback );
}