Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2015, 13:22
Avatar de ColdFusion
ColdFusion
 
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 15 años, 6 meses
Puntos: 9
Convertir URLs en enlaces solo si no estan dentro de un parametro de una etiqueta

Hola a todos, buenas tardes.

Veran, tengo una funcion que convierte toda url en una cadena a un enlace.

Esta es mi funcion:
Código PHP:
function convertir_URLs($str='') {
$str " ".$str;
$str eregi_replace('(((f|ht){1}tps?://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','<a href="\\1" target="_blank" rel="nofollow">\\1</a>'$str);
$str eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)','\\1<a href="http://\\2" target="_blank" rel="nofollow">\\2</a>'$str);
$str eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4})','<a href="mailto:\\1"  rel="nofollow">\\1</a>'$str);
return 
$str;

En realidad me funciona al 100% con todo tipo de url, pero, recientemente me veo en la necesidad de evitar convertir urls que esten dentro de un parametro de una etiqueta, por ejemplo:
Código HTML:
<img src="ESTA_URL" /> 
Por logica se daran cuenta que al usar la funcion cualquier etiqueta IMG o iframe que lleven una URL en su parametro va mostrar un error.

Entonces, como podria transformar todas las urls de la cadena a excepcion de las urls que se encuentren en parametros de etiquetas?

Muchas gracias de antemano.