function make_clickable($text)
{
$ret = ' ' . $text;
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", "'\\1<a href=\"\\2\" >\\2</a>'", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#ise", "'\\1<a target=\"_blank\" href=\"http://\\2\" >\\2</a>'", $ret);
$ret = preg_replace("#(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
$ret = substr($ret, 1);
return($ret);
}
, а также убедитесь, что другие домены, подобные этим, все еще работают:
Я не очень хорошо владею регулярными выражениями, и я украл этот сценарий из Интернета.
Я знаю, что есть ограничения для регулярных выражений, и это может быть одно, но любая помощь вообще будет принята с благодарностью. Я также заметил, что этот сайт использует хороший JavaScript для очень удобного разбора URL. Он работал на каждом из моих «проблемных» доменов, кроме одного с (). Кто-нибудь может показать мне, где находится JS-парсер stackoverflow? Я не смог найти его.
Еще один вопрос: я делаю это для газетного сайта (для автоматического разбора ссылок, которые авторы могут написать в своих историях, а также автоматических почтовых адресов электронной почты). Я думаю, что было бы лучше использовать javascript и позволить каждому клиентскому компьютеру отображать ссылки таким образом. Но я также хочу, чтобы он был надежным, поэтому проблемы с браузерами и такие вещи, как noscript, могут проявиться таким образом. Есть мысли?