Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/07/2003, 11:10
nma2040
 
Fecha de Ingreso: julio-2003
Ubicación: Mexico
Mensajes: 12
Antigüedad: 20 años, 10 meses
Puntos: 0
Me parece una exelente solucion pero... si la cadena contiene un <a href=""><a/> aparte de un http://url.com ignoraria toda la cadena por ejemplo si la cadena es

$texto1="aquí debe haber una url <a href='http://algo.com'>algo</a><br> aquí debe haber una url http://www.algo.com";

function busca_url($_valor='')
{
if (!eregi("<a",$_valor)){
$_remplazado = preg_replace("/(http://S+)|( ftp://S+)/i ","<a href='\01\02'>\01\02</a>\n",$_valor);
$_remplazado = preg_replace("/(w+@S+)/i","<a href='mailto:\01'>\01</a>\n",$_remplazado);
return $_remplazado;
} else {
return $_valor;
}
}

A decir verdad veo algo complicado este problema pero ahora no importa como hay ke resolverlo ^^(lo digo por mi y los que me kieran ayudar jeje) de todos modos te doy las gracias por ayudar ^^ creo que es posible yo cree una solucion pero por alguna razon aunque es funcional se come el espacio/caracter anterior a la cadena remplazada y si no hay nada antes simplemente la ignora ¿por que? no tengo la menor idea pero si te interesa esta es la solucion:

<?
function busca_url($_valor='')
{
$_remplazado = preg_replace("/[^\'\"\=](http:\/\/\S+)|(ftp:\/\/\S+)/i "," <a href='\\01\\02'>\\01\\02</a> ",$_valor);
$_remplazado = preg_replace("/[^\'\"=\S+](\w+@\S+)/i"," <a href='mailto:\\01'>\\01</a> ",$_remplazado);

return $_remplazado;
}
echo busca_url('aqui deve haver una url <a href=http://algo.com>http://algo.com</a> <br> webmaster: <a href="mailto:[email protected]">[email protected]</a>');
echo busca_url('<br>aqui deve haber una url http://nxtch-template.webcindario.com webmaster: [email protected]<br>');
echo busca_url('http://lola.com <br> <a href=lola.com>lola.com<a>');
echo "<br><br>";

?>
wow esto me esta costando muchas aspirinas y muchos cigarros asi que devo resolverlo pronto jejeje