用php查找文本中的所有URL(链接)

Luk*_*uka 1 php url text hyperlink preg-replace

我有这个代码正则表达式,它应该将所有类型的不同URL转换为某些文本中的链接.

preg_replace代码是:

$regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@';
$text = preg_replace($regex, '<a href="$1">$1</a>', $item);
Run Code Online (Sandbox Code Playgroud)

现在它适用于几乎所有你能想象到的URL,但我遇到的问题是逗号和URL中的特殊字符......

问题是让我:

http://www.sdfsdfsdf.sd/si/391,1000,1/more.html

http://sdfsddsdf-sdfsdfds.sr/component/option,com_contact/Itemid,3/lang,si/

有趣的是stackoverflow这两个都可以:)

谢谢,最好的问候,

Bog*_*scu 6

你必须稍微编辑你的正则表达式.这将完成工作:

$regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)@';
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这里添加了一个逗号[-\w/_\.\,],仅此而已.

请享用!