从URL获取纯名称

时间:2015-05-20 06:38:00

标签: php

我使用此函数获取URL的基本名称

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;
}

print get_domain("http://mail.somedomain.co.uk"); // outputs 'somedomain.co.uk'

但是如果没有'.co.uk'或'.com'或其他任何东西我怎么能得到纯粹的名字?

例如: somedomain 没有 co.uk

我知道我可以通过str_replace($old, $new, $string)删除手册...但是没有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您可parse_url获得所需内容:

$url= "http://mail.somedomain.co.uk";
$parts = parse_url($url);
$hostParts = explode('.',$parts['host']);
$main = $hostParts[1];
echo $main;

但是,这将始终为您提供域的第二部分。因此,如果您有http://somedomain.com/之类的网址,则输出结果为com

答案 1 :(得分:0)

$array = explode('.', $_SERVER['SERVER_NAME']);
 echo $array[1];

如果网址是动态的,请尝试此操作。

$array = explode('.',$url);
     echo $array[1];