Удаление всех HTML-тегов с помощью функции WP_STRIP_ALL_TAGS()

WP_STRIP_ALL_TAGS() │ WP 2.9.0

Функция WP_STRIP_ALL_TAGS() удаляет все HTML-теги из переданного контента. Это включает в себя также теги <script> и <style> вместе с их содержимым.

Что это значит

Эта функция отличается от strip_tags(), так как она не просто удаляет теги, но и всё содержимое внутри тегов <script> и <style>. Вот пример, который поможет понять разницу:

strip_tags( '' ); // возвращает 'что-то'
wp_strip_all_tags( '' ); // возвращает пустую строку ''

Функция работает на основе strip_tags(). Если вам нужно обрезать пробелы в начале и конце строки, вы можете использовать trim().

Использование

Функция может использоваться в следующих функциях:

  • wp_html_excerpt()
  • sanitize_text_field()
  • wp_trim_words()

Производительность

  • 1 выполнение — 0.000001 сек (скорость света)
  • 50000 раз — 0.07 сек (скорость света)
  • PHP 7.4.8, WP 5.6.1

Входные параметры

  • $text (string) (обязательный) — строка, содержащая HTML-теги
  • $remove_breaks (true|false) — нужно ли удалять оставшиеся переносы строк и пробелы
    • По умолчанию: false

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

Вот простой пример, чтобы понять, как использовать wp_strip_all_tags().

$str = ' 11
22 333'; $str = wp_strip_all_tags( $str, false ); // Теперь $str содержит: // ' 11 22 333'

Код функции

Вот как выглядит исходный код функции в WordPress:


function wp_strip_all_tags( $text, $remove_breaks = false ) {
if ( is_null( $text ) ) {
return '';
}

if ( ! is_scalar( $text ) ) {
    wp_trigger_error(
        '',
        sprintf(
            __('Warning: %1$s expects parameter %2$s (%3$s) to be a %4$s, %5$s given.'),
            __FUNCTION__,
            '#1',
            '$text',
            'string',
            gettype( $text )
        ),
        E_USER_WARNING
    );

    return '';
}

$text = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $text );
$text = strip_tags( $text );

if ( $remove_breaks ) {
    $text = preg_replace( '/[rnt ]+/', ' ', $text );
}

return trim( $text );

}

Заключение

Функция wp_strip_all_tags() полезна, когда вам нужно получить "чистый" текст без HTML-тегов, что обеспечивает безопасность отображения данных в вашем приложении. Она помогает избавиться от потенциально вредного контента, который может быть внедрён пользователями.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *