Удалить лишние html теги

216
07 сентября 2018, 00:00

Подскажите, как удалить при помощи php вложенные html-теги strong

Сейчас имеем такую строку:

<strong>
Жил старик со своею старухой <strong>У самого синего моря</strong> Они жили в ветхой землянке Ровно тридцать лет и три года.
</strong>

Нужно привести её к такому виду:

<strong>
Жил старик со своею старухой У самого синего моря Они жили в ветхой землянке Ровно тридцать лет и три года.
</strong>
Answer 1

Организовать поиск строк между тегами <strong> и </strong>, а далее можно удалять либо все теги (например, с помощью strip_tags()), либо только необходимые <strong> и </strong>:

$str = '<strong>
Жил старик со своею старухой <strong>У самого синего моря</strong> Они жили в ветхой землянке Ровно тридцать лет и три года.
</strong>';
$str = preg_replace_callback(
    '~(?<=<strong>)(.+)(?=</strong>)~s',
    function($a) { return preg_replace('~</?strong>~', '', $a[0]); },
    $str
);
echo $str;

Результат:

<strong>
Жил старик со своею старухой У самого синего моря Они жили в ветхой землянке Ровно тридцать лет и три года.
</strong>
Answer 2

Есть еще такой вариант

$text = "<strong>Жил старик со своею старухой <strong>У самого синего моря</strong> Они жили в ветхой землянке Ровно тридцать лет и три года.
</strong>";
// удаляет любые теги
$result = '<strong>'. preg_replace('/<(.*?)>|<\/(.*?)>/i', '', $text) .'</strong>';
echo $result;
// удаляет только теги <strong>
$result = '<strong>'. str_ireplace('<strong>', '', str_ireplace('</strong>', '', $text)) .'</strong>';
echo $result; 
Answer 3

Еще вариант с использованием strip_tags():

echo preg_replace_callback('~<strong>\K(.+)(?=</strong>)~is', function($m) {
    return strip_tags($m[1]);
}, $string);
READ ALSO
Паралельное исполнение функции в php

Паралельное исполнение функции в php

Интересует как запустить выполнения функции паралельно внутри другой функцииЕсли я захожу на ссылку site

177
Как сделать вывод текста при удачной отправки формы и заблокировать поля?

Как сделать вывод текста при удачной отправки формы и заблокировать поля?

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

223
Рандомная замена

Рандомная замена

Массив $arrtxt сравнивается по значению с массивом $new по ключу который также содержит в себе массив с ключами и после рандомно выводится рядом...

253
Отправка смс сайта на почту используя Codeigniter 3

Отправка смс сайта на почту используя Codeigniter 3

Использую codeigniter 3И мне нужно сделать отправку с формы смс на почту @gmail

199