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

Как удалить определенные ссылки из 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>
  • Вопрос задан
  • 430 просмотров
Подписаться 2 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
@dodo512
$str = preg_replace('#<a[^>]+href="https?://site\.ru/catalog/razdel/[^>]+>(.*?)</a>#si', '$1', $str);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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