Foros del Web » Programando para Internet » PHP »

AYUDA con exprecion regular para recojer dominios o urls ( warning offset )

Estas en el tema de AYUDA con exprecion regular para recojer dominios o urls ( warning offset ) en el foro de PHP en Foros del Web. hola, estoy haciendo esta exprecion para extraer dominios o urls pero me da este error : Warning: preg_match_all() [function.preg-match-all]: Compilation failed: range out of order ...
  #1 (permalink)  
Antiguo 15/12/2008, 22:49
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
AYUDA con exprecion regular para recojer dominios o urls ( warning offset )

hola,

estoy haciendo esta exprecion para extraer dominios o urls pero me da este error :

Warning: preg_match_all() [function.preg-match-all]: Compilation failed: range out of order in character class at offset 44 in

Código PHP:

$r 
preg_match_all("/^(((http|https|ftp):)?(\/\/)?|\/)([\w\.\/\_-%=&@]+)*((?)[\w\.\/\_-%=&@]+)?((#)[\w\.\/\_-%=&@]+)?$/i"$cache$domains);

    foreach(
array_unique($domains[0]) as $domain)
    {
    
    
    echo 
"Dominios : ".$domain." <br />";

    
    } 
alguien me ayudaria a areglarlo o como seria la regexp correcta ?

muchas gracias, un saludo grande .
  #2 (permalink)  
Antiguo 15/12/2008, 23:03
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

En el mismisimo manual de PHP hay un ejemplo sobre lo que tu deseas hacer:

Código PHP:
<?php
// obtener el nombre de host de una URL
preg_match('@^(?:http://)?([^/]+)@i',
    
"http://www.php.net/index.html"$coincidencias);
$host $coincidencias[1];

// obtener los últimos dos segmentos del nombre de host
preg_match('/[^.]+\.[^.]+$/'$host$coincidencias);
echo 
"el nombre de dominio es: {$coincidencias[0]}\n"//imprime php.net
?>
http://www.php.net/manual/es/function.preg-match.php
  #3 (permalink)  
Antiguo 15/12/2008, 23:20
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

acabo de probar el codigo que me pasastes y lo unico que haces es devolverme la url www.php.net y en otras urls la misma url en si, osea no extrae urls solo devuelve el dominio si es correcto como dice el comentario, alguien me podria ayudar con mi codigo ?
  #4 (permalink)  
Antiguo 15/12/2008, 23:43
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

Cita:
osea no extrae urls solo devuelve el dominio si es correcto como dice el comentario
¿Que no es extraer el dominio lo que querias?

Cita:
hola,

estoy haciendo esta exprecion para extraer dominios
Dejame ver que estas intentando con el codigo que te pase.
  #5 (permalink)  
Antiguo 16/12/2008, 00:00
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

el codigo mio lo que hace es extraer urls o dominios de un sitio osea , $cache seria algo asi en un simple volcado http $cache = file_get_contents($url); la idea es que la exprecion regular mia extraiga todos las urls o dominios del sitio ( codigo de fuente ) no de la misma direccion osea seria muy simple si fuese ese ejemplo de php.net que me distes .
  #6 (permalink)  
Antiguo 16/12/2008, 00:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

Hmmmm, de hecho ... sigue siendo tan simple como el ejemplo de php.net
Solo es usar un poquitin la cabeza:

Código PHP:
$pagina file_get_contents("http://www.google.com/");

preg_match_all('@http://([^/]+)@i'$pagina$coincidencias);
    foreach(
$coincidencias[1] as $url) {
        echo 
'URL: '.$url."<br />\n";
    } 
  #7 (permalink)  
Antiguo 16/12/2008, 00:37
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

sabes por algo es tan simple a mi me sigue dando error mira los resultados que me da en sitios con mas urls :

Dominios : http://tienestupunto.es
Dominios : http://www.domiteca.com
Dominios : http://www.domiteca.com
Dominios : http://www.hostalia.com">alojamiento web<
Dominios : http://www.hostalia.com">www.hostalia.com<
Dominios : http://www.w3.org
Dominios : http://www.nic.mx
Dominios : http://www.whois.mx',850,600);">Whois Dominios<
Dominios : http://www.registry.mx"> www.registry.mx<
Dominios

me extrae aparte de la url lo que le sigue cuando son mas lotes
  #8 (permalink)  
Antiguo 16/12/2008, 09:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: AYUDA con exprecion regular para recojer dominios o urls ( warning offset

Ya depende de ti hacerle los cambios finales... -_-
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 16:27.