Код должен пропускать существующие ссылки, значения src <img>
(или что-то в этом роде)
public function convertUrlsToLinks($text){ return preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $text); }
Не могу понять, что мне нужно изменить в этой функции?
Добавьте небольшую часть в свое регулярное выражение, которое проверяет, не является ли ваше регулярное выражение «внутри» тегом. Так что это должно быть
<tag>HERE</tag>
и не
<tag src="HERE"></tag>.
Поскольку URL-адрес всегда будет INSIDE тегом html, он должен работать, если вы используете для этого регулярное выражение. Я не профессионал с регулярным выражением, поэтому не могу помочь вам больше, чем это, но я думаю, что это должно помочь вам в правильном направлении.