2010-10-27 107 views
5

我需要一个http://如果这http://不遵循href="src="PHP正则表达式替换链接的URL

下面的代码部分工程前增加href="。天色意味着它认为<a href="仅但不src="

$str= preg_replace( 
    "/(?<!a href=\")((http|ftp)+(s)?:\/\/[^<>\s]+)/i", 
    "<a href=\"\\0\"> target=\"blank\">\\0</a>", 
    $str 
); 

谢谢你们提前为您的回复。

+2

见http://stackoverflow.com/questions/4003031/regex-replacing-text-url-but-exclude-image-url – Gumbo 2010-10-27 20:03:14

+0

见http://stackoverflow.com/search?q=regex+链接 – Gordon 2010-10-27 20:48:58

+1

如果URL是锚元素的一部分,您也不想替换该URL,例如'http://example.com' – Gordon 2010-10-27 21:13:22

回答

7
$str= preg_replace( 
    "/(?<!a href=\")(?<!src=\")((http|ftp)+(s)?:\/\/[^<>\s]+)/i", 
    "<a href=\"\\0\" target=\"blank\">\\0</a>", 
    $str 
); 
+0

很有效。谢谢。 – lonelyloner 2010-10-29 16:08:06