sanitize_html_class()
Підготовляє текст для використання його в 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
(дуже швидко) | 50000 разів – 0.08 сек
(швидкість світла) |
PHP 7.1.2, WP 4.7.3
Хуки з функції
Повертає
Строку
.
Використання
$ sanitized = sanitize_html_class( $class, $fallback );
-
$class
(рядок) (обов’язковий) - Рядок (назва класу) яку потрібно очистити.
-
$fallback
(рядок) -
Значення, яке потрібно повернути, якщо оригінальне значення після очищення виявиться порожнім рядком.
За замовчуванням: ”
Приклади
#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() 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 ); }