Para lo que propones sería mejor usar expresiones regulares ..
Un ejemplo:
Código PHP:
function busca_url($_valor=''){
$pattern[0] = "#([\n ])([a-z]*)://([^, \n\r]+)#i";
$replacement[0] = "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>";
$pattern[1] = "#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^, \n\r]*)?)#i";
$replacement[1] = "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>";
$pattern[2] = "#([\n ])([a-z0-9\-_.]+?)@([^, \n\r]+)#i";
$replacement[2] = "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>";
$_remplazado = preg_replace($pattern,$replacement,$_valor);
return $_remplazado;
}
su uso:
Código PHP:
$texto=busca_url($texto);
Un saludo,