Add getRootDomain() to Utils (#514)
This commit is contained in:
parent
819ebece6d
commit
e431f75ad4
@ -3,6 +3,7 @@
|
||||
namespace App\Support;
|
||||
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Illuminate\Support\Str;
|
||||
use Nwidart\Modules\Facades\Module;
|
||||
|
||||
/**
|
||||
@ -47,4 +48,29 @@ class Utils
|
||||
|
||||
return $installer->isEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the domain from a URL
|
||||
*
|
||||
* @param string $url
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getRootDomain(string $url): string
|
||||
{
|
||||
if (!Str::contains($url, ['https://', 'http://'])) {
|
||||
$url = 'http://'.$url;
|
||||
}
|
||||
|
||||
$domain = parse_url($url, PHP_URL_HOST);
|
||||
$domain = explode('.', $domain);
|
||||
$len = count($domain);
|
||||
if ($len == 1) {
|
||||
return $domain[0];
|
||||
}
|
||||
|
||||
$domain = $domain[$len - 2].'.'.$domain[$len - 1];
|
||||
|
||||
return $domain;
|
||||
}
|
||||
}
|
||||
|
@ -69,4 +69,22 @@ class UtilsTest extends TestCase
|
||||
$hex_code = \App\Support\ICAO::createHexCode();
|
||||
$this->assertNotNull($hex_code);
|
||||
}
|
||||
|
||||
public function testGetDomain()
|
||||
{
|
||||
$tests = [
|
||||
'http://phpvms.net',
|
||||
'https://phpvms.net',
|
||||
'phpvms.net',
|
||||
'https://phpvms.net/index.php',
|
||||
'https://demo.phpvms.net',
|
||||
'https://demo.phpvms.net/file/index.php',
|
||||
];
|
||||
|
||||
foreach ($tests as $case) {
|
||||
$this->assertEquals('phpvms.net', \App\Support\Utils::getRootDomain($case));
|
||||
}
|
||||
|
||||
$this->assertEquals('phpvms', \App\Support\Utils::getRootDomain('http://phpvms'));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user