заменить любой URL-адрес в строке текста, на интерактивные ссылки с php

Скажем, у меня есть строка текста, такая как

$text = "Hello world, be sure to visit http://whatever.com today"; 

как я могу (возможно, используя регулярное выражение) вставить теги привязки для ссылки (показывая ссылку как текст ссылки)?

Вы можете использовать regexp для этого:

 $html_links = preg_replace('"\b(https?://\S+)"', '<a href="$1">$1</a>', $text); 

Я пишу эту функцию. Он заменяет все ссылки в строке. Ссылки могут быть в следующих форматах:

Второй аргумент – цель для ссылки ('_blank', '_top' … может быть установлена ​​в false). Надеюсь, поможет…

 public static function makeLinks($str, $target='_blank') { if ($target) { $target = ' target="'.$target.'"'; } else { $target = ''; } // find and replace link $str = preg_replace('@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1" '.$target.'>$1</a>', $str); // add "http://" if not set $str = preg_replace('/<a\s[^>]*href\s*=\s*"((?!https?:\/\/)[^"]*)"[^>]*>/i', '<a href="http://$1" '.$target.'>', $str); return $str; }