PHP从字符串中获取域名和子域名


PHP get domain with subdomain from string

我使用以下函数从字符串中剪切域:

function get_domain($url)
{
  $pieces = parse_url($url);
  $domain = isset($pieces['host']) ? $pieces['host'] : '';
  if (preg_match('/(?P<domain>[a-z0-9][a-z0-9'-]{1,63}'.[a-z'.]{2,6})$/i', $domain, $regs)) {
    return $regs['domain'];
  }
  return false;
}

我需要削减子域+域我应该如何改变preg_match来获得它?

PS我正在寻找解决方案,但每个人都想只剪域名而不剪子。

如果您不能计算出regexp,那么一个更程序化的方法可能是:

$pieces = parse_url($url);
$aDomains = explode('.', $pieces['host']);
$sub = array_shift($aDomains);
$restofdomain = implode($aDomains);

…如果你总是想要第一个域名(即它不会与根域名像'somedomain.com'工作。