Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/11/2014, 14:36
Avatar de satanson123
satanson123
 
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 12 años, 4 meses
Puntos: 2
Extraer url con expresiones regulares

Hola amigos estoy tratando y tratando de hacer que este codigo funcione.

Código PHP:
function MakeUrls($str)
{
$find=array('`((?:https?|ftp)://\S+[[:alnum:]]/?)`si','`((?<!//)(www\.\S+[[:alnum:]]/?))`si');

$replace=array('<a href="$1" target="_blank">$1</a>','<a href="http://$1" target="_blank">$1</a>');

return 
preg_replace($find,$replace,$str);
}
//Function testing
$str=MakeUrls($str); 
Que es lo que hace?

La variable $str con tiene la cadena de caracteres el cual tiene codigo html basico como los siguientes:

Código HTML:
Ver original
  1. <a href="#'></a> y <img src="#">

La funcion saca los enlaces y los convierte en hipervinculos automaticamente pero si tengo por ejemplo alguno de los codigos html ya mensionados los convierte en hipervinculo.

Que necesito?

que la funcion lo pase por alto y que solo busque enlaces sin estar envuelto en html.

un ejemplo de lo que pasa:



3 Horas y no logre resolverlo.

Última edición por satanson123; 15/11/2014 a las 16:40