@MonsterAndrew

Как обернуть URL-ы в тексте в соответствующие ссылки на PHP?

Допустим, есть URL https://example.com. Надо с помощью регулярного выражения обернуть его в код ссылки
<a href="https://example.com">https://example.com</a>
А главное условие, что если уже есть преобразованная ссылка, преобразовывать еще раз не нужно.
https://example.com => <a href="https://example.com">https://example.com</a>;
<a href="https://example.com">https://example.com</a> => не трогать, оставить как есть;
  • Вопрос задан
  • 5325 просмотров
Решения вопроса 1
allard
@allard
Серийный программист
Пользуйся.
$text = preg_replace('(http://[\w+?\.\w+]+[a-zA-Z0-9\~\!\@\#\$\%\^\&amp;\*\(\)_\-\=\+\\\/\?\:\;\'\.\/]+[\.]*[a-zA-Z0-9\/]+)', "<a href='$0' target='_blank'>$0</a>", $text)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Moskus
@Moskus
Вообще, вы явно плохо себе представляете, какая это непростая задача - выборка URL регулярными выражениями. Ознакомьтесь: https://mathiasbynens.be/demo/url-regex
Проблема в том, что современный URL - штука весьма многообразная. Так что придется либо заморочиться поддержкой всевозможных, либо ограничиться каким-то небольшим подмножеством того, что вам может реально встретиться.
Ответ написан
Комментировать
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
$link = "https://example.com";
echo "<a href=\"$link\">$link</a>";

sandbox.onlinephpfunctions.com/code/ae1c1c1c612f76...
Ответ написан
Комментировать
@sa1ch
$msg = 'https://toster.ru/q/460495 ссылка на эту тему';
$url = filter_var($msg, FILTER_VALIDATE_URL);
echo "<a href=\"{$url}\">{$url}</a>";
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы