我有这种代码正则表达式,它应该将所有类型的不同URL转换为一些文本中的链接。在php中找到所有的URL(链接)文本
preg_replace函数的代码是:
$regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@';
$text = preg_replace($regex, '<a href="$1">$1</a>', $item);
现在它适用于几乎所有你能想象的网址,但我的问题是逗号,并在网址的特殊字符...
的问题是让我:
http://www.sdfsdfsdf.sd/si/391,1000,1/more.html
http://sdfsddsdf-sdfsdfds.sr/component/option,com_contact/Itemid,3/lang,si/
滑稽这里计算器这两个都OK了:)
感谢,最好的问候,
逗号的问题是,如果你有“http://www.avto.si/,http://www.avtooglasnik.com/,http://www.avtooglasi.com/”,这三个将会是与逗号相匹配,什么是错的当然:)任何想法? – Luka 2011-05-19 22:15:33
@Luka:不,只有最后一个会与内部的逗号相匹配,其他人只会与不考虑逗号的域匹配。逗号必须在斜杠('/')之后才能匹配为基于上述 – 2011-05-19 22:23:04
以上的正则表达式的URL的一部分,但是您永远不会有以逗号开头的网址,因此这应该是无效的,您可以如此做吗? thx回答无论如何,最好的:) – Luka 2011-05-19 23:21:41