Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/03/2003, 11:59
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
buff expresiones regulares ..

Yo uso esta funcioncita que usa como veras un buen monton de expresiones regulares .. Tiene la misma falencia que tu método . no identifica un URL en una cadena continua.

De todas formas .. hace "clikeables" URL's y direccines de e-mail no solo http sino tambien ftp, https y ftps (estos dos últmos lo añadí yo con lo poquito q se de exp. reg xD) El tema del problema .. se que anda por .)+[a-z]{2,4} ... (el 2,4 determina la extension despues del ultimo punto para dominios de entre 2 y 4 letras para usar por ejemplo un .es .. o .name ..)

Código PHP:
<?
function html_activate_links($str) {
    
$str eregi_replace('(((f|ht){1}(tp|tps){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)''<a href="\\1" target="_blank">\\1</a>'$str);
    
$str eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)''\\1<a href="http://\\2" target="_blank">\\2</a>'$str);
    
$str eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4})','<a href=\"mailto:\\1\">\\1</a>'$str);
    return 
$str;
}
$str="https://www.nosedonde.tal http://usuarios.lycos.es/nose/algo.php www.nosedonde.com";
echo 
html_activate_links($str);
?>
Un saludo,

ojo: usa no convertir automaticamente URL's q sino mete el el codigo q has visto ...

Última edición por Cluster; 01/03/2003 a las 12:02