Задать вопрос
@ikigokor

PHP удаление тегов кроме тех, которые находятся внутри?

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

$txt="вне тега<p>внутри</p><code><b>жирный</b></code><a href='#'>Ссылка</a>";

Необходимо удалить все теги кроме содержимого в code чтобы получилось во так:

$txt="вне тега внутри <b>жирный</b> Ссылка";

Пример упрощенный теги могут быть любые, пока задачу удалось решить на половину:

echo preg_replace('~<code>.*?</code>(*SKIP)(?!)|(\<(/?[^\>]+)\>)~siu', ' ', $txt);

выходит:
вне тега внутри <code><b>жирный</b></code> Ссылка

Но оставляет сам тег code хотелось бы его тоже убрать

вот код: https://regex101.com/r/kR0tO2/29
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dodo512
echo preg_replace('~<code>(.*?)(?=</code>)|<[^>]+>~siu', ' $1', $txt);

https://regex101.com/r/kR0tO2/54

echo preg_replace('~(?<=<code>).*?\K</code>|<[^>]+>~siu', ' ', $txt);

https://regex101.com/r/kR0tO2/55
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы