Php 从url中删除子域

Php 从url中删除子域,php,regex,preg-match,Php,Regex,Preg Match,所以我有这样的代码,返回域名,但我不知道如何删除子域,有人能帮忙吗 $link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg'; preg_match('/^http\:\/\/www.(.*?)\/.*/i', $link, $link_domain); echo $link_domain[1]; 我会尽可能多地使用内置的parse_url,这只会让您留下域名来进行排序。我对要求有点不清楚。预期产出是多少只

所以我有这样的代码,返回域名,但我不知道如何删除子域,有人能帮忙吗

$link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg';
preg_match('/^http\:\/\/www.(.*?)\/.*/i', $link, $link_domain);
echo $link_domain[1]; 

我会尽可能多地使用内置的parse_url,这只会让您留下域名来进行排序。我对要求有点不清楚。预期产出是多少只是www.wwyoursitewww.com?或


输出:
com

Get
host
无子域。使用
www

/**
   * Get Host without subdomain
   * @param $host
   * @return string
   */
  public static function giveHost($host): string
  {
    $newHost    = $host;
    $host_array = explode('.', $host);
    $countDot   = count($host_array);
    if ($countDot > 2){
      $newHost = $host_array[$countDot-2].'.'.$host_array[$countDot-1];
      if (preg_match('/www/', $host)){
        $newHost = 'www.'.$newHost;
      }
    }
    return $newHost;
  }

请不要在字符串中嵌入变量。看到这一点并开始使用单引号的N00B很容易出现问题。在这个问题上存在一些问题。@ColeJohnson嗯,好吧,我会服从你更好的判断。示例也更新了。对于
$m[2]
,您是否应该使用
$m[sizeof($m)-1]
?还是我错了?我对正则表达式不太了解。@cole:没必要。。。它只在找到匹配项时执行,如果找到匹配项,则始终会有
$m[2]
sub2.sub.foo.co.uk
vs
sub2.sub.xx.se
,gl hf删除所有子域。
$link='http://www.lol.wwwyoursitewww.com/aaaaa/ggghd/site.php?sadf=asg';
preg_match('!www((\.(\w)+))+!', $link, $match);
$link_arr=(explode(".", $match[0]));
echo $link_domain = $link_arr[count($link_arr)-1];
/**
   * Get Host without subdomain
   * @param $host
   * @return string
   */
  public static function giveHost($host): string
  {
    $newHost    = $host;
    $host_array = explode('.', $host);
    $countDot   = count($host_array);
    if ($countDot > 2){
      $newHost = $host_array[$countDot-2].'.'.$host_array[$countDot-1];
      if (preg_match('/www/', $host)){
        $newHost = 'www.'.$newHost;
      }
    }
    return $newHost;
  }