(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Удаляет теги HTML и PHP из строки
$string
, array|string|null $allowed_tags
= null
): string
Функция пытается возвратить строку, из которой
удалены все NULL-байты, HTML- и PHP-теги из заданной строки (string
). Для удаления тегов используется тот же механизм,
что и в функции fgetss().
string
Входная строка.
allowed_tags
Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять. Они указываются как строка (string) или как массив (array) с PHP 7.4.0. Смотрите пример ниже относительно формата этого параметра.
Замечание:
Комментарии HTML и PHP-теги также будут удалены. Это жёстко задано в коде и не может быть изменено с помощью параметра
allowed_tags
.
Замечание:
Самозакрывающиеся (такие как <br/>) теги XHTML игнорируются и только не самозакрывающиеся теги должны быть использованы в
allowed_tags
. К примеру, для разрешения как<br>
, так и<br/>
нужно сделать следующее:<?php
strip_tags($input, '<br>');
?>
Возвращает строку без тегов.
Версия | Описание |
---|---|
8.0.0 |
allowed_tags теперь допускает значение null.
|
7.4.0 |
allowed_tags теперь альтернативно принимает массив (array).
|
Пример #1 Пример использования strip_tags()
<?php
$text = '<p>Параграф.</p><!-- Комментарий --> <a href="#fragment">Ещё текст</a>';
echo strip_tags($text);
echo "\n";
// Разрешаем <p> и <a>
echo strip_tags($text, '<p><a>');
// Начиная с PHP 7.4.0, строка выше может быть записана как:
// echo strip_tags($text, ['p', 'a']);
?>
Результат выполнения данного примера:
Параграф. Ещё текст <p>Параграф.</p> <a href="#fragment">Ещё текст</a>
Эта функция не должна использоваться для предотвращения XSS-атак. Используйте более подходящие функции для этой задачи, такие как htmlspecialchars() или другие механизмы, в зависимости от контекста вывода.
Из-за того, что strip_tags() не проверяет валидность HTML, то частичные или сломанные теги могут послужить удалением большего количества текста или данных, чем ожидалось.
Эта функция не изменяет атрибуты тегов, разрешённых с помощью
allowed_tags
, включая такие атрибуты
как style
и onmouseover
, которые
могут быть использованы озорными пользователями при отправке текста,
отображаемого также и другим пользователям.
Замечание:
Имена тегов в HTML превышающие 1023 байта будут рассматриваться как невалидные независимо от параметра
allowed_tags
.