如何将文本替换为段落中的URL

时间:2015-06-03 10:44:51

标签: php

我有一些变数:

$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,">

请告诉我如何才能实现这一目标。

1 个答案:

答案 0 :(得分:0)

你需要增强你的正则表达式模式,以匹配没有http://和www的网址。同样。但是仍然存在一个问题,因为区分包含有效网址中的点的任意字符序列很复杂。

以下模式应满足您的需求:

(?:https?:\/\/)?((?:www\.)?([\w\.\-]){2,}\.[a-z,]{2,5}(:?\?[\w=#,-]+)?)

http://regexr.com/3b4ov