Скажем, у меня есть строка текста, такая как
$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; }