Foros del Web » Programando para Internet » PHP »

Convertir URLs en enlaces solo si no estan dentro de un parametro de una etiqueta

Estas en el tema de Convertir URLs en enlaces solo si no estan dentro de un parametro de una etiqueta en el foro de PHP en Foros del Web. 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: ...
  #1 (permalink)  
Antiguo 15/10/2015, 13:22
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 16 años, 1 mes
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.
  #2 (permalink)  
Antiguo 15/10/2015, 13:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Convertir URLs en enlaces solo si no estan dentro de un parametro de una e

Lamento decirte que las expresiones regulares que usas son obsoletas, y sobre todo, están mal diseñadas.

Me imagino que existirá alguna librería en Packagist/Composer que haga lo que buscas y mejor.

¿Por qué no buscas algo que ya resuelva el problema?

De otra forma te sugiero entonces estudiar más de expresiones regulares, que, siendo otro tema requiere estudio aparte.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: enlaces, etiqueta, parametro, urls
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:18.