2010-10-27 17 views
5

ho bisogno di aggiungere href=" prima di un http:// se questo http:// non segue href=" o src="PHP espressioni regolari per sostituire collegamento URL

Seguendo codice funziona in parte. In parte significa che considera <a href=" solo ma non src="

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

Grazie ragazzi in anticipo per la risposta.

+2

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

+0

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

+1

Inoltre, non si desidera sostituire l'URL se fa parte di un elemento di ancoraggio, ad es. 'http://example.com' – Gordon

risposta

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

funziona bene . Grazie. – lonelyloner

Problemi correlati