我在几个项目中使用了这个,我不认为我遇到了问题,但我相信它并不详尽:
$text = preg_replace(
'#((https?|ftp)://(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i',
"'<a href=\"$1\" target=\"_blank\">$3</a>$4'",
$text
);
末尾的大多数随机垃圾都是为了处理句子中的http://domain.com.
这样的情况(以避免匹配尾随的句点).我相信它是可以清理的,但既然它起作用了.我或多或少只是从一个项目复制到另一个项目.