Hola a todos tengo una duda con el comando preg_replace estoy haciendo una función que cambie una url por un link automáticamente el código es el siguiente
<?
function busca_url($_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;
}
echo busca_url('aquí debe haber una url http://nxtch-template.webcindario.com webmaster:
[email protected]');
echo "<br><br>";
?>
Todo funciona correctamente la url es transformada en un link pero cuando la cadena ya es un link por ejemplo
echo busca_url('aquí debe haber una url <a href="http://algo.com">algo</a><br>');
El script me devuelve
aquí debe haber una url algo.com'>http://algo.com">algo.com
y en el código me devuelve:
aquí debe haber una url <a href="<a href='http://algo.com">algo.com</a>'>http://algo.com">algo.com</a></a>
que puedo hacer para evitar que haga el reemplazo cuando el <a href exista?