2015-05-20 38 views
0

我用這個函數來得到一個URL得到純淨的名字形成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

你可以使用parse_url –

回答

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/這樣的URL,輸出將是com

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

OR

如果URL是動態比試試這個。

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

謝謝你的回答:) –