Preg_replace for url和links

时间:2011-12-22 17:41:37

标签: php regex preg-replace

现在 我正在使用

$content = preg_replace('@(https?://([-\w\.]+)+(:\d+)?((/[\w/_\.%\-+~]*)?(\?\S+)?)?)@', '<a href="$1" target="_blank">$1</a>', $content);

用链接替换url,但它不适用于某些符号,如#和许多其他符号

如果内容显示为

,我也希望如此
<a href="http://www.abc.com/">http://www.abc.com/</a>

然后preg_replace跳过这个,否则它将复制相同的结果并产生错误的结果。

2 个答案:

答案 0 :(得分:1)

Kohana的文本助手类有一个函数可能是一个很好的起点:https://github.com/kohana/core/blob/3.2/master/classes/kohana/text.php#L362

答案 1 :(得分:0)

为什么不查找以http://或https://开头的任何内容,直到任何空白字符?

https?://[^\s]+

这显然是相当宽容的,唯一的问题是你可能得到一些误报。