Extraer dominio de una URL.

Resumen.

En este artículo presentaremos una función que nos puede ser útil en muy diferentes circunstancias, extraer el nombre de dominio (o subdominio), con indeferencia de si usa el protocolo “http”, el “https” o sencillamente, lo omite, así como las “www”, presentes o no.

Artículo.

Si hay algo de importancia indiscutible en cualquier lenguaje de programación orientado a la Web es el nombre de dominio que es la base de todo Internet.

Podemos usar el nombre de dominio (o subdominio) para tareas tan importantes como rechazar enlaces cuando tenemos un ataque se SEO negativo o para contabilizar las Web que nos enlazan. Esto no siempre es posible, no entraremos en los detalles, pero un análisis del tráfico entrante, nos puede llevar a tomar conclusiones de por que nuestro sitio Web no progresa en términos de posicionamiento como cabria esperar.

Podemos conocer que URLs nos enlazan mediante la función:
$url_origen_link = $_SERVER['HTTP_REFERER']; // Captura la URL que envio el enlace
aunque, como hemos dicho, esto no siempre es posible. La cuestión es que en los casos en que si es posible, podemos extraer el dominio de esta URL y así hacer un recuento de los enlaces que nos llegan de ese dominio. También podemos usar esta lógica para permitir que el procesamiento de nuestros formularios se lleve a cabo con datos recibidos desde nuestro propio dominio, aunque esto no es tan eficaz como el uso de captchas o sesiones.

Sin más, la función es la siguiente:
<?php // Extraemos el dominio o subdominio de una URL function ExtrDominio($url){     $ssl substr(strtolower($url), 0,5); // Saca 5 caracteres por la izquierda         if($ssl == 'https'){             $htt 'https://';         }else{             $htt 'http://';         }     $dominio explode('/'str_ireplace('www.'''str_ireplace($htt''$url)));         $existe_punto stripos($dominio[0], '.');         if ($existe_punto === FALSE) {             $dominio_ok null;         } else {             $dominio_ok strtolower($dominio[0]);                      }             return $dominio_ok; } $Url 'https://www.artesaniaweb.es/codigo-php.php'; /* Es igualmente valido para: https://www.artesaniaweb.es/codigo-php.php www.artesaniaweb.es/codigo-php.php artesaniaweb.es/codigo-php.php */ $dominio ExtrDominio($Url); echo "$dominio"; ?>
Desgranando un poco el código, lo primero que hacemos es determinar si la URL nos llega con protocolo no seguro (http) o seguro (https). Lo siguiente será determinar si nos llegan o no las 3 w (www) y cuando todo esto ocurre, si existe un punto (.), es que estamos ante un dominio o subdominio.

Para concluir, la respuesta de la función llega a través de la variable $dominio_ok, si no existe un punto (.) significa que no existe dominio ni subdominio, por lo que la declaramos como variable nula (null).
Tags: Dominio || subdominio || URL || HTTP_REFERER

Comentarios.

Sin comentarios, publica el tuyo.