Foros del Web » Programando para Internet » PHP »

Aislar dominio de una url con expresion regular

Estas en el tema de Aislar dominio de una url con expresion regular en el foro de PHP en Foros del Web. Hola, Actualmente tengo urls almacenadas a las que aislo el dominio de la siguiente forma: Código PHP: $url = "http://www.dominio.com/titulo-del-post_id300" ; $separar  =  parse_url ( ...
  #1 (permalink)  
Antiguo 03/06/2014, 01:47
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 5 meses
Puntos: 3
Exclamación Aislar dominio de una url con expresion regular

Hola,
Actualmente tengo urls almacenadas a las que aislo el dominio de la siguiente forma:
Código PHP:
$url="http://www.dominio.com/titulo-del-post_id300";
$separar parse_url($url);
$dominio str_replace('www.','',$separar[host]);
//resultado: dominio.com 
El problema me surge si la url tiene algún subdominio tipo:
http://m.dominio.com/titulo-del-post_id300 o http://blog.dominio.com/titulo-del-post_id300 pues me mostraría: m.dominio.com o blog.dominio.com cuando yo en verdad necesitaría solo: dominio.com

Para ello, supongo que tendré que usar alguna expresión regular, pero me llevo muy mal con ellas... alguien me podría decir como debería ser esta expresión regular. A tener en cuenta que el subdominio puede variar y los cuales desconozco cuales pueden ser, asi que no se trataría de una expresión regular que filtrara "m." o "blog." sino cualquier cosa delante de dominio.com

Un saludo y gracias por adelantado
  #2 (permalink)  
Antiguo 03/06/2014, 14:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aislar dominio de una url con expresion regular

¿Y por qué crees que es necesaria una expresión regular?

Yo usaría explode(), sencillamente hay que partir la cadena por puntos, y de ahí eliminar el primer elemento.

Código PHP:
Ver original
  1. $parts = explode('.', 'm.domain.com');
  2. array_shift($parts);
  3.  
  4. echo join('.', $parts);

Usa tu ingenio.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/06/2014, 01:42
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Aislar dominio de una url con expresion regular

Perfecto!
Simplemente no se me había ocurrido.

Os dejo el código tal y como lo he dejado para mis intereses, los cuales son que no importe si viene de un subdominio o no:

Código PHP:
$url="http://www.dominio.com/titulo-del-post_id300";
$separar parse_url($url); 
$parts explode('.'$separar[host]);
$numParts count($parts);
if(
$numParts>2){    array_shift($parts);    }
$dominio join('.'$parts);
echo 
$dominio;
//resultado: dominio.com 
Hay una pequeña modificación por si viniera una url del tipo: http://dominio.com/titulo-del-post_id300 (Sin nada delante del dominio, ni subdominio ni www.)

Saludos a todos
y gracias a pateketrueke
  #4 (permalink)  
Antiguo 04/06/2014, 03:18
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Aislar dominio de una url con expresion regular

¿Y si la url es del tipo http://dominio.co.uk ?

Solo por fastidiar ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 04/06/2014, 04:41
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años
Puntos: 66
Respuesta: Aislar dominio de una url con expresion regular

Cita:
¿Y si la url es del tipo http://dominio.co.uk ?

Solo por fastidiar ;)


a una mala si sabe que no le van a llegar subdominios, puede comprobar si la cadena "http://www." está presente y si no lo está exigirla


o también si el primer elemento del explode no contiene la cadena "www" eliminar la cadena "http://" y ahi estará el dominio, si el primer elemento lo contiene es que está en el segundo elemento


si pueden llegar subodminos o la ausencia de estos... ya es otra cosa pero primero habrá que saber contra que puede o no puede enfrentarse.
  #6 (permalink)  
Antiguo 04/06/2014, 05:35
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Aislar dominio de una url con expresion regular

En stackoverflow hay una solución que parece muy decente:

http://stackoverflow.com/questions/2...573307#7573307

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 15/06/2014, 02:20
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Aislar dominio de una url con expresion regular

Cita:
Iniciado por Eleazan Ver Mensaje
¿Y si la url es del tipo http://dominio.co.uk ?

Solo por fastidiar ;)
Que cabrón
;)

Etiquetas: dominio, expresion, regular, url
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 05:09.