заменяет только первое вхождение ссылки
$text = 'Lorem <a href="https://habr.com/ru/news/t/560532/">ipsum</a> dolor<a target="_blank" href="https://habr.com/ru/news/t/560550/" class="reset" rel="noopener">habrhabr</a>Lorem ipsum dolorLorem ipsum dolor</p>';
$text = preg_replace('/href="(.*)"/', 'href="https://www.example.ru/?type=ExternalLink&out=${1}', $text, -1);
echo $text;
результат echo такой Lorem <a href="https://www.example.ru/?type=ExternalLink&out=https://habr.com/ru/news/t/560532/">ipsum</a> dolor<a target="_blank" href="https://habr.com/ru/news/t/560550/" class="reset" rel="noopener">habrhabr</a>Lorem ipsum dolorLorem ipsum dolor</p>
может это быть связано как то с версией или билеотекой php? ну скорей всего связано с этим только не могу понять с чем именно) подскажите плиз
'/href="(.*?)"/' или лучше '/href="([^"]+)"/'
помогло, пасибо) ушел учить регулярки
Обсуждают сегодня