2010-10-27 15 views
5

muszę dodać href=" zanim http:// jeśli to http:// nie wynika href=" lub src="PHP Wyrażenie regularne zastąpić link URL

następujący kod częściowo działa. Częściowo oznacza uzna <a href=" tylko ale nie src="

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

Dziękujemy wam z góry za odpowiedź.

+2

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

+0

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

+1

Nie chcesz też zastępować adresu URL, jeśli jest on częścią elementu zakotwiczenia, np. 'http://example.com' – Gordon

Odpowiedz

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

działa dobrze . Dziękuję Ci. – lonelyloner