В Wordpress, когда вам нужно автоматическим образом конвертировать все URL в строке в кликабельные гиперссылки, вы можете сделать это при помощи встроенной функции make_clickable(). Если вам нужно сделать это на сайтах, основанных не на Wordpress, то вы можете обратиться к исходному коду функции в файле wp-includes/formatting.php:
function _make_url_clickable_cb($matches) {
$ret = '';
$url = $matches[2];
function make_clickable($ret) {
$ret = ' ' . $ret;
// in testing, using arrays here was found to be faster
$ret = preg_replace_callback('#([s>])([w]+?://[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is', '_make_url_clickable_cb', $ret);
$ret = preg_replace_callback('#([s>])((www|ftp).[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is', '_make_web_ftp_clickable_cb', $ret);
$ret = preg_replace_callback('#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret);
// this one is not in an array because we need it to run last, for cleanup of accidental links within links
$ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $ret);
$ret = trim($ret);
return $ret;
}