我使用此函数获取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)
删除手册...但是没有更好的方法吗?
答案 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];