-1

代码必须跳过现有的链接,<img>的 src 值(或类似的东西)

public function convertUrlsToLinks($text){
    return preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $text);
}

想不通,我需要在这个函数中修改什么?

4

1 回答 1

0

向您的正则表达式添加一小部分,以检查您的正则表达式是否不在标签“内部”。所以应该是

     <tag>HERE</tag> 

并不是

     <tag src="HERE"></tag>.

由于 url 将始终位于 html 标记内,因此如果您将正则表达式微调到此用途,它应该可以工作。我不是正则表达式的专业人士,所以不能帮助你更多,但我认为这应该让你朝着正确的方向前进。

于 2012-08-14T18:57:41.643 回答