Para obtener un dominio sobre el que ejecutamos nuestra aplicación podemos utilizar la variable:$_SERVER['HTTP_HOST']. Pero existe un problema; si estamos ejecutando nuestra aplicación en un subdominio Ej: http://app.snippets-tricks.org la variable HTTP_HOST dara como resultado app.snippets-tricks.org y nosotros lo que necesitamos es el dominio principal.
En fin, el problema se resuelve con la siguiente función:
function get_dominio( $url ) {
if ( preg_match( '/^((.+)\.)?([A-Za-z][0-9A-Za-z\-]{1,63})\.([A-Za-z]{3})(\/.*)?$/', $url, $matches ) )
return $matches[3] . '.' . $matches[4];
else
return 'El dominio no se pudo detectar en la URL: ' . $url . "\n";
}
Ejemplos:
http://www.snippets-tricks.org => snippets-tricks.org http://www.snippets-tricks.org/detecta-dominio-principal-php/ => snippets-tricks.org http://netdna.snippets-tricks.org => snippets-tricks.org