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

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

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

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