Foros del Web » Programando para Internet » PHP »

Extraer url con expresiones regulares

Estas en el tema de Extraer url con expresiones regulares en el foro de PHP en Foros del Web. 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' ...
  #1 (permalink)  
Antiguo 15/11/2014, 14:36
Avatar de 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
  #2 (permalink)  
Antiguo 15/11/2014, 17:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Extraer url con expresiones regulares

¿Y qué tanto sabes de expresiones regulares?

Porque la solución sería analizar únicamente dichos enlaces si se encuentran libres de comillas u otros caracteres similares, tal ves con look-ahead/behind lo logres.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/11/2014, 17:08
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Extraer url con expresiones regulares

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y qué tanto sabes de expresiones regulares?

Porque la solución sería analizar únicamente dichos enlaces si se encuentran libres de comillas u otros caracteres similares, tal ves con look-ahead/behind lo logres.
Yo no se nada si sabes como arreglar ese codigo me haces el favor de ayudarme o decirme donde esta el problema y como arreglarlo?
  #4 (permalink)  
Antiguo 16/11/2014, 10:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Extraer url con expresiones regulares

Pues mal ahí, si no sabes nada tampoco esperes a que alguien te de la solución exacta a tu problema.

Te toca aprender primero, lee lo siguiente: http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: expresiones, html, regulares, variable
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 22:18.