Как удалить тег с содержимым из строки в PHP?
$text = '1<p></p><div><a><a href="">2</a>';
$text= strip_tags($text); - Удалить все теги
$text= strip_tags($text, '<p>'); - Удалить все теги, кроме <p>
$text = preg_replace('/<(p|a).*?>(.*?)<\/\1>/ism', '$2', $text); - удалить <p> и <a>
$text = preg_replace('/<(p|a).*?>(.*?)<\/\1>/ism', '', $text); - тоже самое что и выше, но вместе с содержимым.
Если я правильно понял, тогда можешь использовать регулярные выражения
<a([\s\S]+)?>([\s\S]+)?<\/a>
То есть совпадения будут, такие как:
<a></a>
<a href="somehref"></a>
<a href="somehref">asdasd</a>
<a>asdasd</a>
\s - находит пробельные символы, а также переносы, эквивалентен [\r\n\t\f\v ]
\S - делает все тоже самое, только наоборот, находит все кроме пробельных символов
() - группируешь
? - добавляешь, исключение, на то, что это может быть, а может и не быть, потому что вопрос не совсем понятен
Объединяем с php
<?php
$string = 'some string <a>asdasd</a> ';
$pattern = '/<a([\s\S]+)?>([\s\S]+)?<\/a>/i';
echo preg_replace($pattern, "", $string); // some string
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости