Задача удалять все или только определенные html-теги из строки часто возникает там, где необходимо предоставить возможность любому посетителю страницы, добавлять новую информацию. Самым обычным примером может быть гостевая книга или система комментариев на сайте. Добавляемый таким образом текст может содержать множество различных тегов, добавленных случайно при копировании текста или намеренно, чтобы внести сообщение как-то "очень оригинально". Стоит отметить так же и злонамеренные попытки внести на сайт вредоносный код в тегах script или попытку испортить верстку страницы лишними тегами.
В любом из перечисленных случаев, возникает необходимость перед записью новой информации, очищать ее от лишних html-тегов.
Часто для таких задач используются регулярные выражения, однако в этой статье рассмотрим самый простой метод – удаление тегов с помощью php-функции strip_tags. Эта функция просто удаляет теги из указанной в параметре строки.
Пример:
$str_in = "<p>Мой <b>текст</b> с <i>различными</i> <a href='http://space-base.ru/'>тегами</a>.</p>";
$str_out = strip_tags($str_in);
echo $str_out;
В результате такой обработки в переменной $str_out получим строку без тегов:
Мой текст с различными тегами.
Стоит обратить внимание, что функция strip_tags убирает только сами теги, оставляя их содержимое между открывающим и закрывающим тегом.
Иногда нужно убрать только определенные теги из строки. Здесь мы так же воспользуемся функцией strip_tags, но в этот раз вторым (необязательным) параметром укажем теги, которые нужно сохранить.
Например, при обработке строки, нужно оставить только ссылки:
$str_in = "<p>Мой <b>текст</b> с <i>различными</i> <a href='http://space-base.ru/'>тегами</a>.</p>";
$str_out = strip_tags($str_in, '<a>');
echo $str_out;
В результате такой обработки в переменной $str_out получим
Мой текст с различными <a href='http://space-base.ru/'>тегами</a>.
Таким образом, можно указать все теги, которые допустимы в строке, тогда как все остальные будут удалены.
В данной статье рассмотрен самый простой способ очистки строки от тегов. Рассматривая другие варианты, я буду расширять эту статью. Буду рад, если Вы предложите свои варианты решения этой задачи в комментариях или по электронной почте.
Загрузка файла на сервер в PHP (upload)
Копирование, перемещение и переименование папки в PHP
Функция copy в PHP, описание и примеры
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.