Puedes apoyarte en expresiones regulares para matchear esas cadenas y entonces fabricar el link combinando en los sustituyentes la parte que tu quieras. Te dejo un ejemplo de cómo lo hace el foro phpBB (sacado de la función make_clickable en el fichero includes/bbcode.php):
Código PHP:
<?
$texto=" esto es una prueba \n http://elotrositio.tuarrobanet.com \n www.tusitio.com \n hola hola ";
$texto=preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $texto);
$texto=preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $texto);
$texto=preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $texto);
$texto=nl2br($texto);
print $texto;
?>
Salu2 ;) (dejo una cadena de $texto para que veas el ejemplo)