Функция wp_strip_all_tags()
предназначена для удаления всех HTML-тегов из строки, включая теги <script>
и <style>
. Это позволяет сделать строку безопасной для вывода, очищая её от потенциально опасного содержимого.
string wp_strip_all_tags( string $text, bool $remove_breaks = false );
Параметры
- $text (string, обязательный): Строка, содержащая HTML-теги.
- $remove_breaks (bool, необязательный): Определяет, следует ли удалять оставшиеся переносы строк и пробелы. По умолчанию —
false
.
Возврат
Функция возвращает обработанную строку, из которой удалены все HTML-теги.
Применение функции
Основное отличие wp_strip_all_tags()
от функции strip_tags()
заключается в том, что wp_strip_all_tags()
не только удаляет теги, но и очищает содержимое тегов <script>
и <style>
. Это делает её особенно полезной для предотвращения выполнения нежелательного кода и защиты от XSS-атак.
Пример 1: Очистка строки от HTML-тегов
Допустим, у вас есть строка с различными HTML-тегами:
$html = '<div>Пример <strong>текста</strong> с <script>alert("hi");</script> тегами.</div>';
$cleanedText = wp_strip_all_tags($html);
echo $cleanedText;
// Вывод: Пример текст с тегами.
В этом примере все HTML-теги, включая <strong>
и содержимое тега <script>
, были удалены, оставив только текст.
Пример 2: Удаление пробелов и переносов строк
Если вы хотите также удалить лишние пробелы и переносы строк после удаления тегов, можно использовать параметр $remove_breaks
:
$htmlWithBreaks = "Пример текста с переносами\n и пробелами. <br> Это <b>жирный</b> текст.";
$cleanedTextWithBreaks = wp_strip_all_tags($htmlWithBreaks, true);
echo $cleanedTextWithBreaks;
// Вывод: Пример текста с переносами и пробелами. Это жирный текст.
Здесь функция убрала все HTML-теги и заменила переносы строк на пробелы, оставляя текст более читабельным.
Пример 3: Проверка наличия HTML
Также можно использовать wp_strip_all_tags()
для проверки, содержит ли строка HTML-теги:
function contains_html($string) {
return wp_strip_all_tags($string) !== trim($string);
}
$aString = "Это обычный текст.";
if (contains_html($aString)) {
echo "Строка содержит HTML.";
} else {
echo "Строка не содержит HTML.";
}
// Вывод: Строка не содержит HTML.
Заключение
Функция wp_strip_all_tags()
является мощным инструментом для очистки текста от HTML-тегов в WordPress. Она помогает повысить безопасность сайта, особенно когда речь идет о вводе данных пользователями. Использование этой функции позволяет избежать выполнения нежелательного кода и упрощает обработку текстовой информации, что делает её незаменимой при разработке и поддержке веб-приложений на WordPress.