Вы также можете написать регулярное выражение, чтобы получить именно то, что вы хотите.
Вот моя попытка:
$pattern = '/\w+\..{2,3}(?:\..{2,3})?(?:$|(?=\/))/i';
$url = 'http://www.example.com/foo/bar?hat=bowler&accessory=cane';
if (preg_match($pattern, $url, $matches) === 1) {
echo $matches[0];
}
Выход:
example.com
Этот шаблон также учитывает такие домены, как «example.com.au».
Примечание. Я не обращался к соответствующему RFC.