PHP Konwertuj wszystkie adresy URL na linki html [duplikaty]

Możliwy duplikat:
Zastąp adresy URL w tekście linkami HTML

Przekazuję zmienną łańcuchową, która zawiera wiele adresów URL, poprzez poniższą funkcję, aby uzyskać to samo tylko z odpowiednimi linkami HTML.

public function convertUrlsToLinks($text){
    return preg_replace( '@(?<![.*">])\b(?:(?:https?|ftp|file)://|[a-z]\.)[-A-Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]@i', '<a href="\0" target="_blank">\0</a>', $text );
}

To w ogóle nie działa. czego mi brakuje?

Kod musi pominąć istniejące linki,<img>jestsrc wartości (lub coś takiego.)

questionAnswers(1)

yourAnswerToTheQuestion