我正在尝试从用户输入的 URL 字符串中获取域名和 TLD(无子域),该字符串可能有也可能没有协议、目录、子域、文件名等。
换句话说,给定以下任何一项:
example.com
www.example.com
sub.example.com
example.com/whatever/hey.html
http://example.com
https://subdomain.example.com
ftp://example.com/whatever/hey.html
我应该总是以:example.com
.
现在这就是我正在做的事情:
$hostParts = explode('.', parse_url($URL, PHP_URL_HOST));
$tld = array_pop($hostParts);
$domain = array_pop($hostParts);
$domain = $domain . "." . $tld;
但是,如果提供的 URL 没有协议,它就会中断。为什么parse_url
在这种情况下无法获得主机?