Foros del Web » Programando para Internet » PHP »

sacar el dominio principal del un link largo

Estas en el tema de sacar el dominio principal del un link largo en el foro de PHP en Foros del Web. Hola, tengo un texto del tipo: Estoy preguntando en www.forosdelweb.com sobre una duda que tengo, bla bla bla El tema es que necesito aislar el ...
  #1 (permalink)  
Antiguo 18/08/2011, 16:11
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
sacar link de un texto

Hola, tengo un texto del tipo:

Estoy preguntando en www.forosdelweb.com sobre una duda que tengo, bla bla bla

El tema es que necesito aislar el link www.forosdelweb.com (sin es con http:// antes mucho mejor. O lo que es lo mismo, sacar sólo el link del texto y meterlo en una variable. Cuando digo el link no me refiero <a hre=....>www.forosdelweb.com</a> sino sólo http: / / w w w . forosdelweb . com

Intuyo que debo usar expresiones regulares pero no sé cómo
  #2 (permalink)  
Antiguo 18/08/2011, 16:23
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar link de un texto

Hola, me imagino que el enlace está entre sus etiquetas html. Podrías hacer esto en el caso de querer sacar varios enlaces:

Código PHP:
Ver original
  1. $str = 'Estoy preguntando en <a href="www.forosdelweb.com">Enlace</a> sobre una duda que tengo, bla bla bla';
  2. preg_match_all('/<a\shref=\"([^\"]*)\">(.*)<\/a>/siU', $str, $m);
  3. print_r($m);

O simplemente usar preg_match si quieres sacar el primer enlace que encuentre. En el array $m está todo lo que encuentren esas funciones.

Código PHP:
Ver original
  1. $str = 'Estoy preguntando en <a href="www.forosdelweb.com" target=_blank>Enlace</a> sobre una duda que tengo, bla bla bla';
  2. preg_match('/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU', $str, $m);
  3. echo 'http://' . $m[1];
  4. // Resultado: http://www.forosdelweb.com

En el caso de que la etiqueta a tenga más atributos cambias la expresión por esta:

Código PHP:
Ver original
  1. '/<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU'

Si quieres aprender expresiones regulares te recomiendo este aporte:

http://www.forosdelweb.com/f18/aporte-expresiones-pcre-646110/

Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 18/08/2011 a las 16:41
  #3 (permalink)  
Antiguo 18/08/2011, 18:54
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: sacar link de un texto

Una anotacion a lo que andresdzphp te mostro:

Yo reemplazaria:
/<a\shref=\"([^\"]*)\">(.*)<\/a>/siU
Por esto:
/<a\shref=\"([^\"]*)\">(.*?)<\/a>/siU

Para que no haga greedy matching.
En caso de que tuvieras 2 links, sin el ? tomaria todo el texto desde el primer enlance hasta el final del segundo.
  #4 (permalink)  
Antiguo 18/08/2011, 19:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 1 mes
Puntos: 4
Sonrisa Respuesta: sacar link de un texto

Hola a todos

Espero haber entendido bien
¿Quieres obtener el enlace de este String?
Estoy preguntando en www.forosdelweb.com sobre una duda que tengo,


Podrias usar la función explode:

Código PHP:
$string='Estoy preguntando en www.forosdelweb.com sobre una duda que tengo';

$arreglo1=explode("www.",$string);
$arreglo1[0]='Estoy preguntando en' ;
echo 
$arreglo1[1]='forosdelweb.com sobre una duda que tengo';

//Ahora puedes hacer algo similar con el primer espacio
$arreglo2=explode(" ",$arreglo1[1]);

echo 
$arreglo2[0]='forosdelweb.com';
$arreglo2[1]='sobre una duda que tengo';

//Direccion Web:
echo $web='www.'.$arreglo2[0]; 
No sé si es lo que buscas, de ser así espero te ayude.
  #5 (permalink)  
Antiguo 18/08/2011, 19:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar link de un texto

Bueno en el caso de que no tengan etiquetas HTML también te puede servir esto:

Código PHP:
Ver original
  1. $string = 'Estoy preguntando en www.forosdelweb.com sobre una duda que tengo';
  2. $res = preg_match('/www\.([^\s]*)/i', $string, $link);
  3. echo $link[0];
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 19/08/2011, 15:09
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: sacar link de un texto

Cita:
Iniciado por andresdzphp Ver Mensaje
Bueno en el caso de que no tengan etiquetas HTML también te puede servir esto:

Código PHP:
Ver original
  1. $string = 'Estoy preguntando en www.forosdelweb.com sobre una duda que tengo';
  2. $res = preg_match('/www\.([^\s]*)/i', $string, $link);
  3. echo $link[0];
Estupendo andresdzphp!, me va bien, la solución última que me diste es la que me sirve. Lo único, estaría bien que a parte de que coja los links:

w w w . google . e s

también coja:

h t t p : / / w w w . google . e s

y

h t t p : / / google . e s

graciasss
  #7 (permalink)  
Antiguo 19/08/2011, 15:24
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar link de un texto

Eso sería así:

Código PHP:
Ver original
  1. $string = 'Estoy preguntando en www.forosdelweb.com sobre una duda que tengo';
  2. $res = preg_match('@(www\.|http://)([^\s]*)@i', $string, $link);
  3. echo $link[0];
  4.  
  5. //Cogería www.forosdelweb.com http://forosdelweb.com y http://www.forosdelweb.com
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 20/08/2011, 07:53
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: sacar link de un texto

gracias andresdzphp me funcionó muy bien pero ahora tengo otro problema, para links de youtube no me va, imagino que es porque no acaban en .com .es ...

se podría solucionar? gracias
  #9 (permalink)  
Antiguo 20/08/2011, 12:56
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
sacar el dominio principal del un link largo

Hola, tengo una duda, si tengo un link tal y como este:

http://www.forosdelweb.com/profile.php?do=buddylist

cómo hago para meter en una variable sólo el w w w . f o r o s d e l w e b . c o m

?
  #10 (permalink)  
Antiguo 20/08/2011, 13:05
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

Código PHP:
Ver original
  1. $str = 'http://www.forosdelweb.com/profile.php?do=buddylist';
  2. preg_match('@(www\.|http://)([^\s|/]*)@i', $str, $m);
  3. echo $m[0];

Sólo había que agregarle 2 caracteres más si no te sirve el http:// quita esto |http://
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 20/08/2011, 13:39
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: sacar el dominio principal del un link largo

gracias andresdzphp pero necesitaría un retoque. en ocasiones hay links sin www, por ejemplo:

miweb.wordpress.com/2011/06/30/blablabla/

y en este caso no las coge
  #12 (permalink)  
Antiguo 20/08/2011, 14:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: sacar el dominio principal del un link largo

Que tal humanista,

Podrias utilizar parse_url.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #13 (permalink)  
Antiguo 20/08/2011, 14:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

Prueba así a ver:

Código PHP:
Ver original
  1. $str = 'Este es mi url miweb.wordpress.com/2011/06/30/blablabla/ y blablabla.';
  2. preg_match('@(www\.|http://|([^\s]*\.[^\s]))([^\s|/]*)@i', $str, $m);
  3. echo $m[0]; //Resultado: miweb.wordpress.com
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #14 (permalink)  
Antiguo 21/08/2011, 15:57
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: sacar el dominio principal del un link largo

siento dar tanta guerra pero ahora sí q me coge bien pero me aparece el http:// delante. el tema es que quitándolo de la expresión regular no me lo hace desaparecer ¿?
  #15 (permalink)  
Antiguo 21/08/2011, 16:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: sacar el dominio principal del un link largo

Decididamente, como señalo @masterpuppet me inclinaría por
http://es.php.net/manual/en/function.parse-url.php , en particular, lee las notas y fijate la 2ª , una función creada por gustavo andriuolo

Esa es infalible

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #16 (permalink)  
Antiguo 21/08/2011, 16:50
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

Con la expresión regular que detecte las URL en la cadena más el comentario de @emprear se puede lograr sacar el dominio correctamente.

Código PHP:
Ver original
  1. function esip($ip_addr) {
  2.     //first of all the format of the ip address is matched
  3.     if (preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",
  4.     $ip_addr)) {
  5.         //now all the intger values are separated
  6.         $parts = explode(".", $ip_addr);
  7.         //now we need to check each part can range from 0-255
  8.         foreach ($parts as $ip_parts) {
  9.             if (intval($ip_parts) > 255 || intval($ip_parts) < 0)
  10.                 return FALSE; //if number is not within range of 0-255
  11.         }
  12.         return TRUE;
  13.     } else
  14.         return FALSE; //if format of ip address doesn't matches
  15. }
  16.  
  17. function domain($domainb) {
  18.     $bits = explode('/', $domainb);
  19.     if ($bits[0] == 'http:' || $bits[0] == 'https:') {
  20.         $domainb = $bits[2];
  21.     } else {
  22.         $domainb = $bits[0];
  23.     }
  24.     unset($bits);
  25.     $bits = explode('.', $domainb);
  26.     $idz = count($bits);
  27.     $idz -= 3;
  28.     if (strlen($bits[($idz + 2)]) == 2) {
  29.         $url = $bits[$idz] . '.' . $bits[($idz + 1)] . '.' . $bits[($idz + 2)];
  30.     } else if (strlen($bits[($idz + 2)]) == 0) {
  31.         $url = $bits[($idz)] . '.' . $bits[($idz + 1)];
  32.     } else {
  33.         $url = $bits[($idz + 1)] . '.' . $bits[($idz + 2)];
  34.     }
  35.     return $url;
  36. }
  37.  
  38. $cadena = 'Este es mi url http://lavidaesbella.site.com y blablabla.';
  39. preg_match('@(www\.|http://|([^\s]*\.[^\s]))([^\s|/]*)@i', $cadena, $m);
  40.  
  41. $address = $m[0];
  42. $parsed_url = parse_url($address);
  43. $check = @esip($parsed_url['host']);
  44. $host = @$parsed_url['host'];
  45. if ($check == FALSE) {
  46.     if ($host != "") {
  47.         $host = domain($host);
  48.     } else {
  49.         $host = domain($address);
  50.     }
  51. }
  52. echo $host;
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 21/08/2011 a las 17:03
  #17 (permalink)  
Antiguo 21/08/2011, 17:12
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: sacar el dominio principal del un link largo

@andresdzphp. me quedé pensando, si lo que se quiere es sólo averiguar el dominio, en que fallaría esto

Código PHP:
Ver original
  1. <?php
  2. // Ejemplo 1
  3. $url  = "http://192.43.200.23";
  4. $dominio = explode("/", $url);
  5. echo $dominio[2] . "<hr>";
  6.  
  7. // Ejemplo 2
  8. $url  = "http:// www.webamiga.com/index.php?id=15#noticias";
  9. $dominio = explode("/", $url);
  10. echo $dominio[2] . "<hr>";
  11.  
  12. // Ejemplo 3
  13. $url  = "http://www.javierhernandez.info/2010/09/03/formularios-con-jquery-y-php/";
  14. $dominio = explode("/", $url);
  15. echo $dominio[2] . "<hr>";
  16.  
  17. // Ejemplo 4
  18. $url  = "http://www.forosdelweb.com/f4/validar-html-css-todo-sitio-vez-938140/#post3965377";
  19. $dominio = explode("/", $url);
  20. echo $dominio[2] . "<hr>";
  21.  
  22. ?>

no es un poco más sencilla, a lo sumo agrgarle lo de
if (preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",
por si queremos descartar ips

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #18 (permalink)  
Antiguo 21/08/2011, 17:21
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

@emprear es que venimos de un tema atras, donde todo empezó porque quería sacar una URL de una cadena:

Código PHP:
Ver original
  1. $cadena = 'Este es mi url misitio.site.com/word/google/etc/index.php y blablabla.';

Y @humanista quiere que le detecte URLS por ejemplo:

www.google.com
ejemplo.dominio.com
http://www.google.com
http://lacasa.net
misitio.site.com/word/google/etc/index.php

etc... que detecte la URL de la cadena y luego si sacar el dominio.

Coloco la URL del tema anterior para que todos podamos ayudar:

http://www.forosdelweb.com/f18/sacar-link-texto-937590/

Aunque viendolo de tu forma, si no tiene nisiquiera signos / en la cadena no habría problema, hay que mirar eso. Y la forma que derecte una url como subdominio.dominio.com
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 21/08/2011 a las 17:28
  #19 (permalink)  
Antiguo 21/08/2011, 17:29
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: sacar el dominio principal del un link largo

La mejor manera es como dijeron antes con parse_url

http://es.php.net/manual/en/function.parse-url.php

<?php
$url = 'http:// www.webamiga.com/index.php?id=15#noticias';

print_r(parse_url($url));
?>
  #20 (permalink)  
Antiguo 21/08/2011, 17:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: sacar el dominio principal del un link largo

A buena hora me entero.
Igual , me surge una duda, y si la cadena es

"esta es mi url http://xxx.com/miweb, y http://zzz.com/amigo es la web de mi amigo"

Que pasa?
Y se me ocurren expresiones más complicadas.

Saludos y gracias por la aclaración
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #21 (permalink)  
Antiguo 21/08/2011, 17:33
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

Cita:
Iniciado por marcofbb Ver Mensaje
La mejor manera es como dijeron antes con parse_url

http://es.php.net/manual/en/function.parse-url.php

<?php
$url = 'http:// www.webamiga.com/index.php?id=15#noticias';

print_r(parse_url($url));
?>
No sirve la función sola por lo que ya expliqué anteriormente:

Código PHP:
Ver original
  1. <?php
  2. $url = 'Esta es la url de mi sitio blablanla sitio.webamiga.com y mas texto que pueda haber';
  3.  
  4. ?>

En ese caso no saca webamiga.com que es lo que necesita @humanista

Si fuera una simple URL no habría problema:

Código PHP:
Ver original
  1. <?php
  2. $url = 'http://www.forosdelweb.com/profile.php?do=buddylist';
  3. echo parse_url($url, PHP_URL_HOST);
  4. ?>

Cita:
Iniciado por humanista Ver Mensaje
gracias andresdzphp pero necesitaría un retoque. en ocasiones hay links sin www, por ejemplo:

miweb.wordpress.com/2011/06/30/blablabla/

y en este caso no las coge
En el caso que pide @humanista la función sola nada puede lograr.

@emprear según todos los ejemplos que me da @humanista sólo tiene una sola URL la cadena.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 21/08/2011 a las 17:42
  #22 (permalink)  
Antiguo 21/08/2011, 18:17
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: sacar el dominio principal del un link largo

Es que estamos partiendo de bases diferentes, para mi la idea era obtener el host a partir de una url conocida, donde dice que es a partir de un string que puede o no tener una url ?, esta claro que la sugerencia de parse_url es teniendo en mente el primer caso, para el segundo caso, habria que tener en cuenta el rfc correspondiente a la hora de generar la regex.

En fin, con lo expuesto, seguro humanista lo puede resolver.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #23 (permalink)  
Antiguo 21/08/2011, 18:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sacar el dominio principal del un link largo

Totalmente de acuerdo @masterpuppet, sólo hace falta una buena expresión regular que saque la URL de la cadena, porque tiene muchos requerimientos y yo no pude con todos. Cuando empiezan con www http:// muy fácil. Pero que hacer cuando la URL es por ejemplo:

Cita:
miweb.wordpress.com/2011/06/30/blablabla/
Confunde un poco el tema de esa URL y yo estoy apenas en pañales con expresiones regulares, aunque me defiendo un poco.

En todo caso ya se le dejó toda la información y ayudé a humanista lo más que pude.

Saludos.

Edit: Esto llevo hasta el momento y funciona, pero no le he hecho todas las pruebas. Si alguien quiere aportar algo para mejorar bienvenido sea.

Código PHP:
Ver original
  1. <?php
  2.  
  3. function sacarURL($str) {
  4.     if (preg_match('@(www\.|http://)[^\s|/]*|[a-z0-9]{3,}\.[a-z0-9]{3,}\.[a-z]{2,}@i', $str, $m)) {
  5.         /*Usada función de gustavo dot andriuolo
  6.         http://php.net/manual/es/function.parse-url.php*/
  7.         $bits = explode('/', $m[0]);
  8.         if ($bits[0] == 'http:' || $bits[0] == 'https:') {
  9.             $domainb = $bits[2];
  10.         } else {
  11.             $domainb = $bits[0];
  12.         }
  13.         unset($bits);
  14.         $bits = explode('.', $domainb);
  15.         $idz = count($bits);
  16.         $idz -= 3;
  17.         if (strlen($bits[($idz + 2)]) == 2) {
  18.             $url = $bits[$idz] . '.' . $bits[($idz + 1)] . '.' .
  19.              $bits[($idz + 2)];
  20.         } else if (strlen($bits[($idz + 2)]) == 0) {
  21.             $url = $bits[($idz)] . '.' . $bits[($idz + 1)];
  22.         } else {
  23.             $url = $bits[($idz + 1)] . '.' . $bits[($idz + 2)];
  24.         }
  25.        
  26.         return $url;
  27.    
  28.     } else {
  29.         return false;
  30.     }
  31. }
  32.  
  33. $cadena = "texto blablabla y texto miweb.wordpress.com/2011/06/30/blablabla/ y mas texto";
  34. echo sacarURL($cadena); //Resultado wordpress.com
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 22/08/2011 a las 11:10
  #24 (permalink)  
Antiguo 22/08/2011, 13:18
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: sacar el dominio principal del un link largo

al final he hecho un simple str_replace para eliminar el http:// porque la última función sacarURL no me acaba de ir bien pero se agradece
  #25 (permalink)  
Antiguo 22/08/2011, 16:31
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: sacar el dominio principal del un link largo

Creo que éste código te podria valer, he probado con el htttp y sin el, y funciona, aunque realmente no se si es lo que buscabas.
Código PHP:
Ver original
  1. <?php
  2. $urlcompleta= "miweb.wordpress.com/2011/06/30/blablabla/";
  3. if((strpos($urlcompleta, "http://", $offset = null)) !=0 )
  4. {
  5.     $marcado= strpos($urlcompleta, "/", $offset = null);
  6.     $url=substr($urlcompleta, 0 , $marcado);
  7.     echo $urlcompleta."</br>";
  8.     echo $url;
  9. }
  10. else
  11. {
  12.     $url= str_replace("http://","", $urlcompleta);
  13.     $pos=strpos($url, "/", $offset = null);
  14.     $url2=substr($url, 0, $pos);
  15.     echo $urlcompleta."</br>";
  16.     echo $url2;
  17. }
  18. ?>
  #26 (permalink)  
Antiguo 22/08/2011, 19:32
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: sacar el dominio principal del un link largo

Vos lo que tenes que hacer es detectar la url, completa con expreciones regulares y despues con parse_url obtener lo demas :)

¿Que es lo que siempre tiene una url?

http:// y .com, .com.ar, .tk o el dominio que sea

Etiquetas: largo, link, principal, dominios, variables
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

SíEste tema le ha gustado a 1 personas




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