PHP:%preg_replace之后的链接%

时间:2010-11-11 21:34:55

标签: php regex

我有这个表达:

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

但是像

这样的链接
http://photoartkalmar.com/Photoart%20Kalmar%20high%20res/Gigapixel/Vienna%2050%20Gigapixel/Donauturm.html

或以something.jpg

结尾

锚点链接在%或停止。在网址上,所以它不会使它只是一半的链接。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

当然,将%符号放在正则表达式中的正确位置:[\w/_\.][\w/_\.%]

看看整行,看看到底在哪里:

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