(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Удаляет HTML- и PHP-теги из строки
Функция пытается вернуть строку со всеми
NULL-байтами, HTML- и PHP-тегами, которые она удалила из заданной строки string
.
Функция удаляет теги через тот же конечный автомат,
что и функция fgetss().
string
Входная строка.
allowed_tags
Необязательный второй параметр указывает теги, которые не требуется удалять. Теги указываются как строка (string) или с PHP 7.4.0 — как массив (array). Формата параметра объясняет пример на этой странице.
Замечание:
Функция также удалит HTML-комментарии и PHP-теги. Такое поведение жёстко закодировали и это нельзя изменить через параметр
allowed_tags
.
Замечание:
Функция игнорирует самозакрывающиеся XHTML-теги наподобие <br/> и только несамозакрывающиеся теги разрешается указывать в аргументе
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() или другие механизмы, в зависимости от контекста данных для вывода.
Иногда неполные теги или теги, которые ломают HTML-разметку, приводят к удалению большего количества текста или данных, чем ожидалось, поскольку функция strip_tags() не проверяет корректность HTML-кода.
Эта функция не изменяет атрибуты тегов, которые разрешили через
параметр allowed_tags
, включая атрибуты
style
и onmouseover
, которыми
злонамеренный пользователь злоупотребляет при публикации текста,
который страница покажет другим пользователям.
Замечание:
Функция расценит как недопустимые имена тегов во входных HTML-данных, размер которых превышает 1023 байта, независимо от параметра
allowed_tags
.