我有这个表达:
$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
锚点链接在%或停止。在网址上,所以它不会使它只是一半的链接。我该如何解决这个问题?
答案 0 :(得分:2)
当然,将%
符号放在正则表达式中的正确位置:[\w/_\.]
→[\w/_\.%]
看看整行,看看到底在哪里:
$content = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.%]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank">$1</a>', $content);