PHP Convertir todas las direcciones URL en enlaces html [duplicar]

Posible duplicado:
Reemplazar URLs en texto con enlaces HTML

Estoy pasando la variable de cadena que contiene varias URL, a través de la función a continuación para obtener lo mismo solo con los enlaces HTML adecuados.

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 );
}

No funciona en absoluto. ¿Qué me estoy perdiendo?

El código debe omitir los enlaces existentes,<img>essrc valores (o algo por el estilo).

Respuestas a la pregunta(1)

Su respuesta a la pregunta