Domain detection failing for .co.uk, etc #647 (#648)

* Fix domain name detection #647

* Ignore page links check if no DB configured #641
This commit is contained in:
Nabeel S
2020-03-28 19:07:46 -04:00
committed by GitHub
parent 3e7d5f6195
commit 82b873c071
5 changed files with 169 additions and 19 deletions

View File

@@ -6,6 +6,7 @@ use App\Contracts\Model;
use Hashids\Hashids;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Support\Str;
use LayerShifter\TLDExtract\Extract;
use Nwidart\Modules\Facades\Module;
/**
@@ -109,19 +110,14 @@ class Utils
*/
public static function getRootDomain(string $url): string
{
if (!Str::contains($url, ['https://', 'http://'])) {
$url = 'http://'.$url;
if (Str::contains($url, ['https://', 'http://'])) {
$url = str_replace('https://', '', $url);
$url = str_replace('http://', '', $url);
}
$domain = parse_url($url, PHP_URL_HOST);
$domain = explode('.', $domain);
$len = count($domain);
if ($len == 1) {
return $domain[0];
}
$extract = new Extract();
$result = $extract->parse($url);
$domain = $domain[$len - 2].'.'.$domain[$len - 1];
return $domain;
return $result->getRegistrableDomain();
}
}