Regular Expressions
$convertedText = preg_replace( '@(?<![.">])\b(?:(?:https?|ftp|file)://|[a-z].)[-A-Z0-9+&#/%=~_|$?!:,.][A-Z0-9+&#/%=~_|$]@i', '\0', $originalText );