У меня есть следующий простой код:
$text = str_replace($f,'<a href="'.$f.'" target="_blank">'.$u.'</a>',$text);
, где $ f - это URL, например http://google.ca
, а $ u - это имя URL (моя функция называет его «Google»).
Моя проблема в том, если я дам своей функции строку типа
http://google.ca http://google.ca
возвращает
<a href="<a href="http://google.ca" target="_blank">Google</a>" target="_blank">Google</a> <a href="<a href="http://google.ca" target="_blank">Google</a>" target="_blank">Google</a>
Что, очевидно, не то, что я хочу. Я хочу, чтобы моя функция отображала две отдельные кликабельные ссылки. Но str_replace заменяет первое вхождение (оно находится в цикле для прохождения всех найденных URL-адресов), и это первое вхождение уже заменено.
Как я могу сказать str_replace игнорировать этот конкретный и перейти к следующему? Данная строка является пользовательским вводом, поэтому я не могу просто дать ей статическое смещение или что-то еще с substr, что я пробовал.
Спасибо!