Como sacar el dominio de una cadena?

  • Autor Autor satanson
  • Fecha de inicio Fecha de inicio
satanson

satanson

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola amigos tengo algo que hacer y no tengo idea por donde empezar.
Lo que necesito es extraer solo la parte de un enlace que va desde https/http hasta .com/net/etc.. Ahora algunos repiten y solo necesito uno de cada uno.

Ejemplo, Si tengo:

Insertar CODE, HTML o PHP:
https://forobeta.com/forums/sjdkfbvkja
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh

Quiero solo extraer uno de cada y solo la parte de http a .com por ejemplo:

Insertar CODE, HTML o PHP:
https://forobeta.com
https://www.google.com
https://www.facebook.com

Si alguien puede ayudar a escribir el codigo sera de mucha ayuda.
 
yo lo hago espérame un momento, espero lograrlo en menos de 5 minutos, hace tiempo que no programo en php...
 
Última edición por un moderador:
Aquí está joven:

PHP:
<?php
// Your code here!
$array = array(
"https://forobeta.com/forums/sjdkfbvkja",
"https://forobeta.com/forums/skiubdfkjsdb",
"https://forobeta.com/forums/safbdgjkbg",
"https://forobeta.com/forums/skdjbfgkjasga",
"https://forobeta.com/forums/slakdjfnbgjd",
"https://www.google.com/kjasbfgjkbsfag",
"https://www.google.com/skfdbgvksjfbgasl",
"https://www.google.com/nkzjsfbdgkjfsdg",
"https://www.google.com/ljzsdbfgjkbasdfg",
"https://www.google.com/klzjbsdfgkabsgk",
"https://www.facebook.com/ksdjzbfgkjbasfg",
"https://www.facebook.com/sioudbgjasbfg",
"https://www.facebook.com/bzisudfbgkjsafhbg",
"https://www.facebook.com/kzshfdbgkjsgzdfg");

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
print_r($resultado);
?>

Espero que le sirva.
 
Este es el output. Cualquier modificación me avisas, saludos.
JSON:
Array
(
    [0] => https://forobeta.com
    [5] => https://www.google.com
    [10] => https://www.facebook.com
)
 
Aquí está joven:

PHP:
<?php
// Your code here!
$array = array(
"https://forobeta.com/forums/sjdkfbvkja",
"https://forobeta.com/forums/skiubdfkjsdb",
"https://forobeta.com/forums/safbdgjkbg",
"https://forobeta.com/forums/skdjbfgkjasga",
"https://forobeta.com/forums/slakdjfnbgjd",
"https://www.google.com/kjasbfgjkbsfag",
"https://www.google.com/skfdbgvksjfbgasl",
"https://www.google.com/nkzjsfbdgkjfsdg",
"https://www.google.com/ljzsdbfgjkbasdfg",
"https://www.google.com/klzjbsdfgkabsgk",
"https://www.facebook.com/ksdjzbfgkjbasfg",
"https://www.facebook.com/sioudbgjasbfg",
"https://www.facebook.com/bzisudfbgkjsafhbg",
"https://www.facebook.com/kzshfdbgkjsgzdfg");

foreach ($array as &$valor) {
    $valor = parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
print_r($resultado);
?>

Espero que le sirva.
Se me olvido colocar que era desde una cadena xD perdon!
Desde una cadena de caracteres tengo extraer los dominios de todos los enlaces.
 
Y son varias url ver imagen, por ejemplo: https://prnt.sc/n6k6ak3Rz6Cb

PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
print_r($resultado);
?>
 
PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
print_r($resultado);
?>
El compañero ya te dijo todo aqui, lo único que yo agregaría es:
Debajo de $resultado = array_unique($array);
Insertar CODE, HTML o PHP:
$resultado = array_unique($array);
$resultado = array_values($resultado);

Para tenerlo un poco más ordenado más que nada, por que de la otra manera me imprime $array[posicion_original].

Pero el código del compañero funciona perfecto
 
PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
print_r($resultado);
?>
Gracias si imprime lo que quiero pero me lo imprime de esta manera -> https://prnt.sc/DlBBHHGILfKx es necesario solo la url. Como lo arreglo?

El compañero ya te dijo todo aqui, lo único que yo agregaría es:
Debajo de $resultado = array_unique($array);
Insertar CODE, HTML o PHP:
$resultado = array_unique($array);
$resultado = array_values($resultado);

Para tenerlo un poco más ordenado más que nada, por que de la otra manera me imprime $array[posicion_original].

Pero el código del compañero funciona perfecto
Tus lineas no devuelve ningun valor.
 
Gracias si imprime lo que quiero pero me lo imprime de esta manera -> https://prnt.sc/DlBBHHGILfKx es necesario solo la url. Como lo arreglo?


Tus lineas no devuelve ningun valor.
Es agregar la segunda línea debajo del codigo del compañero, sin embargo lo tienes bien

Ahora vi tu otro comentario, puedes imprimirlo así

Insertar CODE, HTML o PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
foreach ($resultado as $res){
    echo "$res\n";
}
?>

Asi solo te imprime el texto sin lo otro que no necesitas

Insertar CODE, HTML o PHP:
https://forobeta.com
https://nitro.download
https://www.google.com
https://www.facebook.com
 
bueno esto está muy denso creo que él amigo fmogro te ayudará en lo que tengas que hacer saludos
 
Es agregar la segunda línea debajo del codigo del compañero, sin embargo lo tienes bien

Ahora vi tu otro comentario, puedes imprimirlo así

Insertar CODE, HTML o PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
foreach ($resultado as $res){
    echo "$res\n";
}
?>

Asi solo te imprime el texto sin lo otro que no necesitas

Insertar CODE, HTML o PHP:
https://forobeta.com
https://nitro.download
https://www.google.com
https://www.facebook.com
Exelente hermano, solo una consulta mas si es posible, las url que inician con www o con www88 etc... las repite. No se por que.
 
Es agregar la segunda línea debajo del codigo del compañero, sin embargo lo tienes bien

Ahora vi tu otro comentario, puedes imprimirlo así

Insertar CODE, HTML o PHP:
<?php
// Your code here!
$urls = "https://forobeta.com/forums/sjdkfbvkja
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://forobeta.com/forums/slakdjfnbgjd
https://www.google.com/kjasbfgjkbsfag
https://www.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

$array = explode(PHP_EOL, $urls);

foreach ($array as &$valor) {
    $valor = "https://" . parse_url($valor, PHP_URL_HOST);
}

$resultado = array_unique($array);
foreach ($resultado as $res){
    echo "$res\n";
}
?>

Asi solo te imprime el texto sin lo otro que no necesitas

Insertar CODE, HTML o PHP:
https://forobeta.com
https://nitro.download
https://www.google.com
https://www.facebook.com
Aqui te dejo una captura: https://prnt.sc/jnIZvc3NkVQg
 
Quizá no sea el más óptimo pero te sirve así?
Insertar CODE, HTML o PHP:
<?php
$urls = "https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";
$array = explode(PHP_EOL, $urls);
foreach ($array as &$valor) {
    $input = trim($valor, '/');
    if (!preg_match('#^http(s)?://#', $input)) {
        $input = 'http://' . $input;
    }
    $urlParts = parse_url($input);
    $explodedUrlParts = explode('.',$urlParts['host']);
    if (count($explodedUrlParts)>=3){
        unset($explodedUrlParts['0']);
    }
    $valor = "http://www.".implode($explodedUrlParts,'.');
    
}
$resultado = array_unique($array);
foreach ($resultado as $res){
    echo "$res\n";
}

?>

Le agregué estos dominios

Insertar CODE, HTML o PHP:
https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh

Y la salida fue esta


Insertar CODE, HTML o PHP:
http://www.forobeta.com
http://www.nitro.download
http://www.google.com
http://www.facebook.com

Salu2
 
Algo así seria lo veo que funciona lo hice tan rápido:
PHP:
<?php
$cadena = "https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

preg_match_all("|https?:\/\/[\d_\-a-zA-Z.]{2,256}\.[a-z]{1,256}|", $cadena, $match);
foreach(array_unique($match[0]) as $key => $url) {
    echo $url."<br>";
}
?>
la salida del código seria:

Insertar CODE, HTML o PHP:
https://www8.forobeta.com
https://www.nitro.download
https://www2.nitro.download
https://nitro.download
https://forobeta.com
https://www11.forobeta.com
https://www11.google.com
https://www18.google.com
https://www.google.com
https://www.facebook.com
 
Quizá no sea el más óptimo pero te sirve así?
Insertar CODE, HTML o PHP:
<?php
$urls = "https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";
$array = explode(PHP_EOL, $urls);
foreach ($array as &$valor) {
    $input = trim($valor, '/');
    if (!preg_match('#^http(s)?://#', $input)) {
        $input = 'http://' . $input;
    }
    $urlParts = parse_url($input);
    $explodedUrlParts = explode('.',$urlParts['host']);
    if (count($explodedUrlParts)>=3){
        unset($explodedUrlParts['0']);
    }
    $valor = "http://www.".implode($explodedUrlParts,'.');
   
}
$resultado = array_unique($array);
foreach ($resultado as $res){
    echo "$res\n";
}

?>

Le agregué estos dominios

Insertar CODE, HTML o PHP:
https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh

Y la salida fue esta


Insertar CODE, HTML o PHP:
http://www.forobeta.com
http://www.nitro.download
http://www.google.com
http://www.facebook.com

Salu2
Gracias por estar aquí pero sale este error: https://prnt.sc/zTgjYi72d-_q
 
Algo así seria lo veo que funciona lo hice tan rápido:
PHP:
<?php
$cadena = "https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh";

preg_match_all("|https?:\/\/[\d_\-a-zA-Z.]{2,256}\.[a-z]{1,256}|", $cadena, $match);
foreach(array_unique($match[0]) as $key => $url) {
    echo $url."<br>";
}
?>
la salida del código seria:

Insertar CODE, HTML o PHP:
https://www8.forobeta.com
https://www.nitro.download
https://www2.nitro.download
https://nitro.download
https://forobeta.com
https://www11.forobeta.com
https://www11.google.com
https://www18.google.com
https://www.google.com
https://www.facebook.com
Esta mas simplificado, pero sigue saliendo repetidas las que tiene www11, www12, etc...

Yo creo que es por que las que son www11.forobeta.com, www12.forobeta.com, etc... las esta tomando como url distintas y no como las mismas.
 
Yo creo que es por que las que son www11.forobeta.com, www12.forobeta.com, etc... las esta tomando como url distintas y no como las mismas.
Y eso es correcto, dado que subdominios distintos técnicamente son webs distintas sin importar que tengan el mismo dominio.

Puedes intentar con algo como lo siguiente, sin embargo seguramente tendrás que adaptarlo para sitios web que tengan dominios con código de país de segundo nivel, como .com.mx o .co.uk

PHP:
<?php
$urls = <<<'EOL'
https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh
EOL;

$lines = explode("\n", $urls);

foreach ($lines as $key => $value) {
    $value = trim($value);
   
    if (!preg_match('#https?://#i', $value)) {
        unset($lines[$key]);
    }
   
    $url = parse_url($value);
    $domain_parts = explode('.', $url['host']);
    $domain_parts_length = count($domain_parts);
    $domain = '';
   
    if ($domain_parts_length > 2) {
        $domain = sprintf('%s.%s', $domain_parts[$domain_parts_length - 2], $domain_parts[$domain_parts_length - 1]);
    }
   
    $lines[$key] = sprintf('%s://%s', $url['scheme'], (!empty($domain) ? $domain : $url['host']));
}

$lines = array_unique($lines);

var_dump($lines);

La desventaja es que elimina los subdominios, que en mi opinión eso es incorrecto, pero solo tu sabrás porqué lo necesitas de esa forma.
 
Y eso es correcto, dado que subdominios distintos técnicamente son webs distintas sin importar que tengan el mismo dominio.

Puedes intentar con algo como lo siguiente, sin embargo seguramente tendrás que adaptarlo para sitios web que tengan dominios con código de país de segundo nivel, como .com.mx o .co.uk

PHP:
<?php
$urls = <<<'EOL'
https://www8.forobeta.com/forums/sjdkfbvkja
https://www.nitro.download/view/skiubdfkjsdb
https://www2.nitro.download/view/skiubdfkjsdb
https://nitro.download/view/skiubdfkjsdb
https://forobeta.com/forums/skiubdfkjsdb
https://forobeta.com/forums/safbdgjkbg
https://forobeta.com/forums/skdjbfgkjasga
https://www11.forobeta.com/forums/slakdjfnbgjd
https://www11.google.com/kjasbfgjkbsfag
https://www18.google.com/skfdbgvksjfbgasl
https://www.google.com/nkzjsfbdgkjfsdg
https://www.google.com/ljzsdbfgjkbasdfg
https://www.google.com/klzjbsdfgkabsgk
https://www.facebook.com/ksdjzbfgkjbasfg
https://www.facebook.com/sioudbgjasbfg
https://www.facebook.com/bzisudfbgkjsafhbg
https://www.facebook.com/kzshfdbgkjsgzdfgh
EOL;

$lines = explode("\n", $urls);

foreach ($lines as $key => $value) {
    $value = trim($value);
  
    if (!preg_match('#https?://#i', $value)) {
        unset($lines[$key]);
    }
  
    $url = parse_url($value);
    $domain_parts = explode('.', $url['host']);
    $domain_parts_length = count($domain_parts);
    $domain = '';
  
    if ($domain_parts_length > 2) {
        $domain = sprintf('%s.%s', $domain_parts[$domain_parts_length - 2], $domain_parts[$domain_parts_length - 1]);
    }
  
    $lines[$key] = sprintf('%s://%s', $url['scheme'], (!empty($domain) ? $domain : $url['host']));
}

$lines = array_unique($lines);

var_dump($lines);

La desventaja es que elimina los subdominios, que en mi opinión eso es incorrecto, pero solo tu sabrás porqué lo necesitas de esa forma.
Es solo para sacar el favicon de las webs, gracias, funciona pero no me sale como es necesario -> https://prnt.sc/LrCAv7HMOmvm solo nesecito las url sin los simbolos. Se los agradesco chicos han sido de mucha ayuda.
 
Es solo para sacar el favicon de las webs, gracias, funciona pero no me sale como es necesario -> https://prnt.sc/LrCAv7HMOmvm solo nesecito las url sin los simbolos. Se los agradesco chicos han sido de mucha ayuda.
a que simbolos te refieres? Si literalmente te lo esta dando en el formato que pediste
 
Atrás
Arriba