我有一些变数:
$string = 'he says of stackoverflow.com, & http://google.com, the website he founded in 2001'
$string = 'he says of www.stackoverflow.com & http://www.google.com the website he founded in 2001'
现在我想用URL替换为HTML链接
我正在使用preg_replace功能:
echo preg_replace("#http://([\S]+?)#Uis", '<a href="http://\\1">\\1</a>', $string2);
此代码仅将http://-url替换为链接
如果.com之后有逗号(例如http://google.com,
),则此逗号也需要在链接中:<a href="http://www.google.com,">
请告诉我如何才能实现这一目标。
答案 0 :(得分:0)
你需要增强你的正则表达式模式,以匹配没有http://和www的网址。同样。但是仍然存在一个问题,因为区分包含有效网址中的点的任意字符序列很复杂。
以下模式应满足您的需求:
(?:https?:\/\/)?((?:www\.)?([\w\.\-]){2,}\.[a-z,]{2,5}(:?\?[\w=#,-]+)?)