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:
Sin más, la función es la siguiente:
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).
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:
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.$url_origen_link = $_SERVER['HTTP_REFERER']; // Captura la URL que envio el enlace
Sin más, la función es la siguiente:
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.<?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"; ?>
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