Como obtener el dominio de una url con php

Puede que te encuentres con la necesidad de mostrar solo el nombre del dominio de una url. A mi me ha surgido la necesidad en este mismo directorio pues, al aceptar páginas internas a veces la url es larga, o simplemente muy fea.

Comenzé con un script que encontré por la red y que devolvía correctamente el dominio pero solo para dominios convencionales como .com, .net, .es, etc. pero ¿qué pasa con los dominios por ejmplo .co.uk de inglaterra? Hay más ejemplos como el caso de inglaterra, por ejemplo los dominios genéricos .com.es.

Al principio todo me pareció muy sencillo, pero al pensar en ese tipo de dominios se complicó un poco y luego se complicó aún más cuando pensé en la existencia de estúpidos subdominios realmente largos pero que no dejan de ser válidos, una url podría ser: http://sub1.sub2.sub3.sub4.dominio.com.es, en este caso me interesaría solo dominio.com.es, y tampoco se puede olvidar que esa misma url con estúpidos subdominios sería igual a http://www.sub1.sub2.sub3.sub4.dominio.com.es.

Así que me decidí a realizar la función por mí mismo para obtener el dominio de una url con php fuese cual fuese el caso pues no encontraba ninguna ya realizada en la web, seguro que hay pero no la encontré. Así que aquí está:

<?php
 function getdomain($url) {
  $components = parse_url($url);
  preg_match("/\.([^\/]+)/", $components['host'],$domain);
  return strtolower($domain[1]);
}
?>

Cerrar


Comentarios (3)

Community Builder Avatar
cybnet
(15.01.2012 (12:00:10))
Sí No Citando "jesus" :
Vaya no funciona con url sin www.

A mi si me funciona sin www. Lo que no funciona es si no pones http:// o https://, etc.
Community Builder Avatar
jesus
(15.01.2012 (05:06:18))
pepe Sí No Vaya no funciona con url sin www. He hecho unos ajustes sin el rpeg_match por si te pasa lo mismo ahí lo tienes


$cad = array('http://, https://, www.');

$dominio = str_ireplace($cad, '', $dominio['host']);

return $dominio;
Community Builder Avatar
jesus
(15.01.2012 (03:25:31))
pepe Sí No gracias muy util ;)

Smileys

:confused::cool::cry::laugh::lol::normal::blush::rolleyes::sad::shocked::sick::sleeping::smile::surprised::tongue::unsure::whistle::wink: