strip_tags

(PHP 4, PHP 5, PHP 7)

strip_tagsУдаляет теги HTML и PHP из строки

Описание

strip_tags ( string $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.

Замечание:

В PHP 5.3.4 и новее, самозакрывающиеся (такие как <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.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности