从URL获取域名-PHP


Get domain name from URL - PHP

我需要从URL 获取域名

domain.com

domain.co.uk

我应该得到:

.com

.co.uk

我尝试了爆炸功能,但没有显示域".co.uk"(示例)

    <?php
$url = "domain.com";
$host = explode('.', $url);
print $host[1];
?>
是的,使用php函数parse_url(http://php.net/parse_url),它会帮助你的。

UPDATE基于关闭(当前为第三个答案)-删除域扩展

$url = 'php.co.uk';
preg_match('/(.*?)((?:'.co)?.[a-z]{2,4})$/i', $url, $matches);

print_r($matches);


忽略跟随-坏的做法,但仍然解释工作的爆炸。

看看你什么时候爆炸,然后用".",它在.co.uk上找到了两次。因此,如果您在哪里同时回显$host[1]&主持人[2]你将分别获得英国联合会。

因此,作为一个部分完整的(不确定你的最终游戏是什么)解决方案:

解决方案:

$url = "domain.co.uk";
$host = explode('.', $url);
$first = true;
foreach($host as $hostExtension){
  if($first){
      $first = !$first;
      continue;
  }
 else{
      echo $hostExtension .'<br>';
  }
}

不过,为了清楚起见,其他答案解释了应该如何解析URL。我只是想解释一下(回答这个问题)你的代码为什么要做/返回它是什么,以及你将如何获得预期结果。