2010-10-27 19 views
5

ersetzt ich href=" vor einem http:// wenn diese http:// hinzufügen müssen folgen nicht href=" oder src="PHP Regulärer Ausdruck Link url

folgenden Code teilweise funktioniert. Teilweise bedeutet dies, hält <a href=" nur aber nicht src="

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

Danke Jungs im Voraus für Ihre Antwort.

+2

Siehe http://stackoverflow.com/questions/4003031/regex-replacing-text-url-but-exclude-image-url – Gumbo

+0

Siehe http://stackoverflow.com/search?q=regex+ link – Gordon

+1

Sie möchten die URL auch nicht ersetzen, wenn sie Teil eines Ankerelements ist, z 'http://example.com' – Gordon

Antwort

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

funktioniert gut . Vielen Dank. – lonelyloner