- Удалить все теги div из строки php regex?
- Регулярные выражения для удаления тегов
- Удаление тегов
- Результат:
- Удаление атрибутов
- Результат:
- Результат:
- Удаление тегов в ячейках таблицы
- Результат:
- Комментарии
- Другие публикации
- strip_tags
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- Как в php удалить из строки определенные теги? Функция strip_tags удалет все кроме определенных. А мне нужно только определенные. Как это сделать?
Удалить все теги div из строки php regex?
У меня есть wysiwyg на сайте. Проблема заключается в том, что пользователи копируют много данных в нее, оставляя много незакрытых и неправильно отформатированных тегов div, которые нарушают макет сайта.
Легкий ли простой способ удалить все вхождения
?
str_replace не будет работать, потому что у некоторых из есть стиль и другие вещи в них, поэтому ему нужно будет учитывать и т.д.
Я предполагаю, что это можно сделать с регулярным выражением, но я все-таки новичок, когда дело доходит до них.
Нет. Вы никогда не разбираете/не манипулируете HTML с помощью регулярных выражений.
С regexes нельзя торговаться. С ними нельзя рассуждать. Они не понимают html, они не grok xml. И они абсолютны НЕ будут останавливаться, пока ваше дерево DOM не будет мертвым.
Вы используете htmlpurifier и/или DOM для управления деревом.
Лучше использовать DOM для парсера HTML, но если у вас нет выбора, кроме как использовать RegEx, вы можете использовать его следующим образом:
$patterns = array(); $patterns[0] = '/]*>/'; $patterns[1] = '//'; $replacements = array(); $replacements[2] = ''; $replacements[1] = ''; echo preg_replace($patterns, $replacements, $html); Здесь упрощенный пример того, как вы могли бы это сделать с PHP
$val) < $text = mb_str_replace($key, $val, $text); >return $text; > function worker(&$body, &$replacements, $id) < static $call_count; if (empty($call_count)) < $call_count = array(); >if (empty($call_count[$id])) < $call_count[$id] = 0; >if (mb_strpos($body, '
')) < $body = mb_str_replace('