php 代码片断 网址获取根域名

获取的根域名,比如www.baidu.com 取得baidu.com等等,

支持常用域名后缀,你也可以自己添加新增的域名后缀。

上代码:

/**
* 取得网址根域名
* @param type $domain 域名
* @return string 返回根域名
*/
function GetUrlToDomain($domain)
{
  $re_domain               = '';
  $domain_postfix_cn_array = array("test","xyz","de","com","in","ooo","net","org","gov","edu","com.cn","cn","cc","top","club","monster");
  $array_domain = explode(".", $domain);
  $array_num    = count($array_domain) - 1;
  $opt          = array (
    'options'=> 'FILTER_FLAG_IPV6',
  );
  if($domain == "localhost"){
    $re_domain = $domain;
  }
  //FILTER_FLAG_IPV6
  //elseif (validateIP($domain))
  //{
  //$re_domain = $domain;
  //}
  elseif(ip2long($domain)){
    $re_domain = $domain;
  }
  else
  {
    if($array_domain[$array_num] == 'cn'){
      if(in_array($array_domain[$array_num - 1], $domain_postfix_cn_array)){
        $re_domain = $array_domain[$array_num - 2] . "." . $array_domain[$array_num - 1] . "." . $array_domain[$array_num];
      }
      else
      {
        $re_domain = $array_domain[$array_num - 1] . "." . $array_domain[$array_num];
      }
    }
    else
    {
      $re_domain = ($array_num > 0)?$array_domain[$array_num - 1] . "." . $array_domain[$array_num]:$domain;
    }
  }
  return $re_domain;
}

使用例子(对的没错,我喜欢用中文作变量名)

$获取域名 = isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'localhost';
$实际域名 = strtolower($获取域名);
$根域名  = GetUrlToDomain($实际域名);
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注