Foros del Web » Programando para Internet » PHP »

Nombre de dominio basandome en URL

Estas en el tema de Nombre de dominio basandome en URL en el foro de PHP en Foros del Web. Hola intento hacer una función con la que no quedo del todo satisfecho, lo que intento basicamente es de filtrar un nombre de dominio basandome ...
  #1 (permalink)  
Antiguo 24/02/2012, 10:44
 
Fecha de Ingreso: febrero-2012
Mensajes: 10
Antigüedad: 12 años, 9 meses
Puntos: 0
Nombre de dominio basandome en URL

Hola intento hacer una función con la que no quedo del todo satisfecho, lo que intento basicamente es de filtrar un nombre de dominio basandome en la url, por ejemplo de: http://www.google.com/4345, imprimir solamente "google".
El código es el siguiente:

function dominio($dire) {
$c = parse_url($dire);
preg_match("/\.([^\/]+)/", $c['host'],$hs);
return strtolower($hs[1]);
}

Teniendo en cuenta que en $url tengo:
http://www.google.com/54534
http://www.yahoo.es/?var=4535
Http://facebook.to/?var=0090

while ($i < count ($url) ) {

echo str_replace(".com", "", dominio($url[$i]));

}

Esto me imprime lo siguiente:

google
yahoo.es
.to

Me gustaria hacerlo funcionar con otros domininios sin tener que hacer un str_replace de cada uno de ellos y que no haga falta el "www." previo.

google
yahoo
facebook

Si alguien me puede orientar, saludos ;)
  #2 (permalink)  
Antiguo 25/02/2012, 14:46
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Nombre de dominio basandome en URL

http://php.net/manual/es/function.preg-match.php Ejemplo #3, simplemente corta el resultado de atrás hacia adelante hasta la posición donde encuentras el .
Para esto utiliza strpos(), saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 26/02/2012, 00:42
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 9 meses
Puntos: 15
Respuesta: Nombre de dominio basandome en URL

Supongo que es esto lo que quieres:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function dominio($dire){
  4.     if(preg_match('/^https?:\/\/[www\.]*([a-z]+)\.[a-z]{2,3}\//i',$dire,$r)){
  5.         return $r[1];
  6.     }
  7.     return null;
  8. }
  9.  
  10. $urls = Array(
  11. 'http://www.google.com/54534',
  12. 'http://www.yahoo.es/?var=4535',
  13. 'Http://facebook.to/?var=0090'
  14. );
  15.  
  16. foreach($urls As $url){
  17.     echo dominio($url).'<br />';
  18. }
  19.  
  20. ?>

Espero que te sirva de algo.
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »

Última edición por zarkiel; 26/02/2012 a las 00:53
  #4 (permalink)  
Antiguo 26/02/2012, 01:19
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Nombre de dominio basandome en URL

Cita:
Iniciado por zarkiel Ver Mensaje
Supongo que es esto lo que quieres:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function dominio($dire){
  4.     if(preg_match('/^https?:\/\/[www\.]*([a-z]+)\.[a-z]{2,3}\//i',$dire,$r)){
  5.         return $r[1];
  6.     }
  7.     return null;
  8. }
  9.  
  10. $urls = Array(
  11. 'http://www.google.com/54534',
  12. 'http://www.yahoo.es/?var=4535',
  13. 'Http://facebook.to/?var=0090'
  14. );
  15.  
  16. foreach($urls As $url){
  17.     echo dominio($url).'<br />';
  18. }
  19.  
  20. ?>

Espero que te sirva de algo.
Ya tienes la solucion ?
Yo he probado alguna de las indicadas si exito.
grcaias
  #5 (permalink)  
Antiguo 26/02/2012, 02:51
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: Nombre de dominio basandome en URL

Buenas,
prueba a ver esto si es lo que buscas...

Código PHP:
Ver original
  1. <?php
  2. $url = array ('http://www.google.com','http://facebook.com','http://www.yahoo.com','http://altavista.com','http://www.msn.com','http://twitter.com' );
  3. $ale=rand(0,5);
  4. $arrayCadena=explode(".", $url[$ale]);
  5. if($arrayCadena[0]=='http://www'){
  6.     echo $arrayCadena[1];
  7. } else {
  8.     $arrayCadena=explode("//", $url[$ale]);
  9.     $resulCadena=explode(".", $arrayCadena[1]);
  10.     echo $resulCadena[0];
  11. }
  12. ?>
  #6 (permalink)  
Antiguo 26/02/2012, 22:14
 
Fecha de Ingreso: febrero-2012
Mensajes: 10
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Nombre de dominio basandome en URL

grácias, me sirvieron las soluciones tanto las funciones como las expresiones regulares :)

Etiquetas: dominio, nombre, 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 14:46.