好吧,這是我現在解決它的方法。更多域名的實施也將在未來某個時候完成。不知道我會用什麼技術。
# Setting options, single and dual part domain extentions
$v2_onePart = array(
"com"
);
$v2_twoPart = array(
"co.uk",
"com.au"
);
$v2_url = $_SERVER['SERVER_NAME']; # "example.com" OR "example.com.au"
$v2_bits = explode(".", $v2_url); # "example", "com" OR "example", "com", "au"
$v2_bits = array_reverse($v2_bits); # "com", "example" OR "au", "com", "example" (Reversing to eliminate foo.bar.example.com.au problems.)
switch ($v2_bits) {
case in_array($v2_bits[1] . "." . $v2_bits[0], $v2_twoPart):
$v2_class = $v2_bits[2] . " " . $v2_bits[1] . "_" . $v2_bits[0]; # "example com_au"
break;
case in_array($v2_bits[0], $v2_onePart):
$v2_class = $v2_bits[1] . " " . $v2_bits[0]; # "example com"
break;
}
標題在這裏有點誤導。您正在解析域名,而不是解析它的外觀。基本上,這歸結爲尋找一個TLD數據庫及其與英國和澳大利亞等國家代碼相關的二級數據庫。沒有這些信息,沒有辦法解決這個問題。 – Matthew 2011-03-15 23:51:14
所以這裏是一個重複的:http://stackoverflow.com/questions/4963202/domain-regex-split-你想看看RobertPitt的解決方案作爲替代。如上所述,它可以在最佳賭注基礎上完成。您甚至無法通過TLD探索ala'dig + all co.uk'獲得可靠的結果。 – mario 2011-03-15 23:54:14