Функция strip_tags
Функция strip_tags удаляет HTML теги из строки, не трогая их содержимого. Вторым необязательным параметром можно указать разрешенные теги — они не будут удалены. Их указываем в таком формате: » или ‘
‘ , если хотим оставить несколько тегов.
Синтаксис
strip_tags(строка, [разрешенные теги]);
Пример
Давайте удалим все HTML теги из строки:
Результат выполнения кода:
‘lorem ipsum dolor sit amet’
Смотрите также
- функцию htmlspecialchars ,
которая позволяет вывести теги в браузер
strip_tags
Эта функция пытается возвратить строку str , из которой удалены все NULL-байты, HTML и PHP теги. Для удаления тегов используется тот же автомат, что и в функции fgetss() .
Список параметров
Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять.
Замечание:
Комментарии HTML и PHP-теги также будут удалены. Это жестко записано в коде и не может быть изменено с помощью параметра allowable_tags .
Замечание:
Этот параметр не должен содержать пробелов. strip_tags() рассматривает тег как нечувствительную к регистру строку, находящуюся между и первым пробелом или >.
Замечание:
В PHP 5.3.4 и новее также необходимо добавлять соответвующий закрывающий тег XHTML, чтобы удалить тег из str . Например, для удаления и и
нужно сделать следующее:
strip_tags ( $input , ‘
‘ );
?>?php
Возвращаемые значения
Возвращает строку без тегов.
Список изменений
| Версия | Описание |
|---|---|
| 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-сущности
Удаляет HTML и PHP-теги из строки
Для защиты скрипта от атак из форм и для корректного отображения кода в тексте — работаем со строками.
$tag = strip_tags($tag); // Удалить теги
$tag = htmlspecialchars($tag); // Заменить теги на спец. символы
Функция strip_tags() — удаляет все HTML и PHP теги, можно указать теги, которые удалять не нужно.
$tag=’Yandex — удалить код‘;
$tag = strip_tags($tag, ‘, ‘); // Удалить теги, кроме b и i
echo $tag;
?>
Выводит: Yandex — удалить код — БЕЗ тегов, кроме и
Во втором аргументе через запятую можно указать теги, которые НЕ удалять. Если второй аргумент не указывать — удаляются все теги.
Функция htmlspecialchars() — переводит все теги в безопасные спец. символы, может иметь второй аргумент — флаг (вариант преобразования).
$tag=’Yandex — удалить код‘;
$tag = htmlspecialchars($tag); // Замена тегов на спец. символы
echo $tag;
?>
Выводит: Yandex — удалить код — т.е теги не срабатывают в браузере, т.к. в них заменены угловые скобки и др.
Производятся следующие преобразования:
- ‘&’ (амперсанд) преобразуется в ‘&’
- ‘»‘ (двойная кавычка) преобразуется в ‘"’ в режиме ENT_NOQUOTES is not set.
- «‘» (одиночная кавычка) преобразуется в ‘'’ только в режиме ENT_QUOTES.
- ‘ (знак «меньше чем») преобразуется в ‘<‘
- ‘>’ (знак «больше чем») преобразуется в ‘>’
Доступные значения параметра flags — второго аргумента
По умолчанию используется ENT_COMPAT | ENT_HTML401.
- ENT_COMPAT Преобразует двойные кавычки, одинарные кавычки не изменяются.
- ENT_QUOTES Преобразует как двойные, так и одинарные кавычки.
- ENT_NOQUOTES Оставляет без изменения как двойные, так и одинарные кавычки.
- ENT_IGNORE Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Данная возможность предоставляется в целях обратной совместимости, избегайте ее использования, т.к. она может внести уязвимости в ваш код.
- ENT_SUBSTITUTE Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
- ENT_DISALLOWED Заменяет кодовые последовательности, несоответствующие указанному типу документа символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки.
- ENT_HTML401 Обработка кода в соответствии с HTML 4.01.
- ENT_XML1 Обработка кода в соответствии с XML 1.
- ENT_XHTML Обработка кода в соответствии с XHTML.
- ENT_HTML5 Обработка кода в соответствии с HTML 5.
Еще некоторые функции:
- get_html_translation_table() — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
- htmlspecialchars_decode() — Преобразует специальные HTML-сущности обратно в соответствующие символы
- htmlentities() — Преобразует все возможные символы в соответствующие HTML-сущности
- nl2br() — Вставляет HTML-код разрыва строки перед каждым переводом строки
PHP : Удаление html тегов из текста
Вот несколько вариантов:
1. Используя функцию strip_tags &mdash Удаляет HTML и PHP-теги из строки
Параграф.
Еще текст’; echo strip_tags($text); echo «\n»; // Разрешаем
и echo strip_tags($text, ‘
‘); ?>
Результат выполнения данного примера:
Параграф. Еще текст
2. Используя регулярные выражения:
]*?>.*?‘si», // Вырезает javaScript «‘<[\/\!]*?[^<>]*?>’si», // Вырезает HTML-теги «‘([\r\n])[\s]+'», // Вырезает пробельные символы «‘&(quot|#34);’i», // Заменяет HTML-сущности «‘&(amp|#38);’i», «‘&(lt|#60);’i», «‘&(gt|#62);’i», «‘&(nbsp|#160);’i», «‘&(iexcl|#161);’i», «‘&(cent|#162);’i», «‘&(pound|#163);’i», «‘&(copy|#169);’i», «‘&#(\d+);’e»); // интерпретировать как php-код $replace = array («», «», «\\1», «\»», «&», «», » «, chr(161), chr(162), chr(163), chr(169), «chr(\\1)»); $text = preg_replace($search, $replace, $document); ?>
В результате получите чистый текст без HTML тегов
PHP удаление тегов
Здравствуйте добрые люди, не судите строго за детский вопрос, я только учусь. В PHP есть функция strip_tags, которая удаляет html теги в строке. Во втором ее параметре можно указать исключения, т.е. те теги которые она должно оставить, например вот так:
echo strip_tags($text, '');
Вопрос; можно ли наоборот, указать в функции те параметры, которая она должна удалить, а все остальное оставить? Например
функция($text,) //удалить теги а все остальные оставить
Не обязательно именно strip_tags(), можно предложить и аналог. Регулярное выражение составить могу, но может есть специальная функция?
Как удалить все HTML-теги из строки на PHP/JavaScript?
Когда вы принимаете данные от пользователей, через ту же форму обратной связи, есть смысл обрабатывать передаваемые от них данные и получать на выходе чистый текст.
Как это можно сделать разными способами, я сейчас расскажу.
Как удалить все HTML-теги из строки на PHP?
В PHP существует функция под названием «strip_tags». С помощью нее можно быстро и просто удалить все HTML- теги из переменной.
Hello, world!"; $content = strip_tags($content); echo $content; // Выведет "Hello, world!" ?>
Если же вы хотите сохранить некоторые теги от удаления, пропишите их сразу после переменной, например, так:
Hello, world!Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vivamus sed lacus vel diam consectetur rhoncus et eget justo.
"; $content = strip_tags($content, "
"); echo $content; // Выведет "Hello, world!
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Vivamus sed lacus vel diam consectetur rhoncus et eget justo.
" ?>
В таком случае мы сохраняем теги
и . У тегов, имеющих закрывающий тег, прописывать при сохранении его не нужно.
Обратите внимание, функция не проверяет HTML-разметку на валидность, и если есть незакрытые теги, то вы рискуете потерять обычный текст.
Как удалить все HTML-теги из строки на JavaScript?
В JavaScript мы напишем свою небольшую функцию, с помощью которой в последующем и будем обрабатывать полученные данные.
Этот пример работает на конкретной заданной переменной, вы же можете переделать его под полученное содержимое, например, из поля input.
PHP : Удаление html тегов из текста

Вот несколько вариантов:
1. Используя функцию strip_tags &mdash Удаляет HTML и PHP-теги из строки
Параграф.
Еще текст’; echo strip_tags($text); echo «\n»; // Разрешаем
и echo strip_tags($text, ‘
‘); ?>
Результат выполнения данного примера:
Параграф. Еще текст
2. Используя регулярные выражения:
]*?>.*?‘si», // Вырезает javaScript «‘<[\/\!]*?[^<>]*?>’si», // Вырезает HTML-теги «‘([\r\n])[\s]+'», // Вырезает пробельные символы «‘&(quot|#34);’i», // Заменяет HTML-сущности «‘&(amp|#38);’i», «‘&(lt|#60);’i», «‘&(gt|#62);’i», «‘&(nbsp|#160);’i», «‘&(iexcl|#161);’i», «‘&(cent|#162);’i», «‘&(pound|#163);’i», «‘&(copy|#169);’i», «‘&#(\d+);’e»); // интерпретировать как php-код $replace = array («», «», «\\1», «\»», «&», «», » «, chr(161), chr(162), chr(163), chr(169), «chr(\\1)»); $text = preg_replace($search, $replace, $document); ?>
В результате получите чистый текст без HTML тегов
Удаляет HTML и PHP-теги из строки
Для защиты скрипта от атак из форм и для корректного отображения кода в тексте — работаем со строками.
$tag = strip_tags($tag); // Удалить теги
$tag = htmlspecialchars($tag); // Заменить теги на спец. символы
Функция strip_tags() — удаляет все HTML и PHP теги, можно указать теги, которые удалять не нужно.
$tag=’Yandex — удалить код‘;
$tag = strip_tags($tag, ‘, ‘); // Удалить теги, кроме b и i
echo $tag;
?>
Выводит: Yandex — удалить код — БЕЗ тегов, кроме и
Во втором аргументе через запятую можно указать теги, которые НЕ удалять. Если второй аргумент не указывать — удаляются все теги.
Функция htmlspecialchars() — переводит все теги в безопасные спец. символы, может иметь второй аргумент — флаг (вариант преобразования).
$tag=’Yandex — удалить код‘;
$tag = htmlspecialchars($tag); // Замена тегов на спец. символы
echo $tag;
?>
Выводит: Yandex — удалить код — т.е теги не срабатывают в браузере, т.к. в них заменены угловые скобки и др.
Производятся следующие преобразования:
- ‘&’ (амперсанд) преобразуется в ‘&’
- ‘»‘ (двойная кавычка) преобразуется в ‘"’ в режиме ENT_NOQUOTES is not set.
- «‘» (одиночная кавычка) преобразуется в ‘'’ только в режиме ENT_QUOTES.
- ‘ (знак «меньше чем») преобразуется в ‘<‘
- ‘>’ (знак «больше чем») преобразуется в ‘>’
Доступные значения параметра flags — второго аргумента
По умолчанию используется ENT_COMPAT | ENT_HTML401.
- ENT_COMPAT Преобразует двойные кавычки, одинарные кавычки не изменяются.
- ENT_QUOTES Преобразует как двойные, так и одинарные кавычки.
- ENT_NOQUOTES Оставляет без изменения как двойные, так и одинарные кавычки.
- ENT_IGNORE Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Данная возможность предоставляется в целях обратной совместимости, избегайте ее использования, т.к. она может внести уязвимости в ваш код.
- ENT_SUBSTITUTE Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
- ENT_DISALLOWED Заменяет кодовые последовательности, несоответствующие указанному типу документа символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки.
- ENT_HTML401 Обработка кода в соответствии с HTML 4.01.
- ENT_XML1 Обработка кода в соответствии с XML 1.
- ENT_XHTML Обработка кода в соответствии с XHTML.
- ENT_HTML5 Обработка кода в соответствии с HTML 5.
Еще некоторые функции:
- get_html_translation_table() — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
- htmlspecialchars_decode() — Преобразует специальные HTML-сущности обратно в соответствующие символы
- htmlentities() — Преобразует все возможные символы в соответствующие HTML-сущности
- nl2br() — Вставляет HTML-код разрыва строки перед каждым переводом строки
