Как удалить определенные ссылки из html кода на php?

Здравствуйте!

Есть море подобного текста:

<p>
	<strong><a href="https://site.ru/catalog/?q=Найти" target="_blank">текст,</a></strong><a target="_blank" href="https://site.ru/catalog/razdel/"> текст </a><strong><a target="_blank" href="https://site.ru/catalog/razdel/elem/">текст</a></strong><a target="_blank" href="https://site.ru/catalog/section/"> текст </a>
</p>
<ul>
	<li><b>Текст</b><a href="http://site.ru/catalog/razdel/elem/" target="_new" style="background: #ffffff;"> текст </a> текст </li>
</ul>


Ломаю голову, не могу составить регуляторное выражение что бы удалить из него все ссылки (полностью теги a, оставив текст внутри) которые содержать ссылку на разделы "razdel"?

То есть ссылки вида https://site.ru/catalog/?q=Найти и https://site.ru/catalog/section/ остаются, а такие как site.ru/catalog/razdel/elem и site.ru/catalog/razdel удаляются.

То есть надо получить код вида:

<p>
	<strong><a href="https://site.ru/catalog/?q=Найти" target="_blank">текст,</a></strong> текст <strong>текст</strong><a target="_blank" href="https://site.ru/catalog/section/"> текст </a>
</p>
<ul>
	<li><b>Текст</b> текст  текст </li>
</ul>
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
@dodo512
$str = preg_replace('#<a[^>]+href="https?://site\.ru/catalog/razdel/[^>]+>(.*?)</a>#si', '$1', $str);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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