Php убрать html теги из строки

Удалить все HTML-теги в PHP очень просто. Для этой цели существует функция string strip_tags(string $str [, string $allowable_tags]) , которая возвращает строку без тегов.

Функция принимает два параметра:

  1. string str — строка в которой нужно удалить теги. Обязательный параметр;
  2. string allowable_tags — необязательный параметр, означает какие теги необходимо оставить в строке.

Пример

У нас есть PHP переменная $str, в которой нужно удалить теги.

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

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

Описание

Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэгов используется автомат, аналогичный примененному в функции fgetss() .

Необязательный второй аргумент может быть использован для указания тэгов, которые не должны удаляться.

Замечание: Аргумент allowable_tags был добавлен в PHP 3.0.13 и PHP 4.0b3. С версии PHP 4.3.0 удаляются также HTML комментарии.

Так как strip_tags() не проверяет корректность HTML кода, незавершенные тэги могу привести к удалению текста, не входящего в тэги.

Пример 1. Пример использования strip_tags()

Этот пример выведет:

Еще немного текста

Эта функция не изменяет атрибуты тэгов, указанных в аргументе allowable_tags, включая style и onmouseover.

С версии PHP 5.0.0 strip_tags() безопасна для обработки данных в двоичной форме.

У данной функции есть существенный недостаток — это склейка слов при удалении тегов. Кроме этого функция имеет уязвимости. Альтернативная функция аналог strip_tags:

Смотрите также описание функции htmlspecialchars() .

(PHP 4, PHP 5, PHP 7)

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

Описание

Эта функция пытается возвратить строку str , из которой удалены все NULL-байты, HTML и PHP теги. Для удаления тегов используется тот же автомат, что и в функции fgetss() .

Список параметров

Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять.

Комментарии HTML и PHP-теги также будут удалены. Это жестко записано в коде и не может быть изменено с помощью параметра allowable_tags .

Этот параметр не должен содержать пробелов. strip_tags() рассматривает тег как нечувствительную к регистру строку, находящуюся между .

В PHP 5.3.4 и новее также необходимо добавлять соответвующий закрывающий тег XHTML, чтобы удалить тег из str . Например, для удаления и
и
нужно сделать следующее:

Возвращаемые значения

Возвращает строку без тегов.

Список изменений

Версия Описание
5.3.4 strip_tags() больше не удаляет соответвующие закрывающие XHTML теги, если они не переданы в allowable_tags .
5.0.0 strip_tags() теперь безопасна для обработки бинарных данных.

Примеры

Пример #1 Пример использования strip_tags()

Результат выполнения данного примера:

Примечания

Из-за того, что strip_tags() не проверяет валидность HTML, то частичные или сломанные теги могут послужить удалением большего количества текста или данных, чем ожидалось.

Эта функция не изменяет атрибуты тегов, разрешенных с помощью allowable_tags , включая такие атрибуты как style и onmouseover, которые могут быть использованы озорными пользователями при посылке текста, отображаемого также и другим пользователям.

Имена тегов в HTML превышающие 1023 байта будут рассматриваться как невалидные независимо от параметра allowable_tags .

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

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

[an error occurred while processing the directive]
Карта сайта