PHP获取网址的顶级域名函数代码

  PHP获取网址的顶级域名函数

  目前国际顶级域名有:com|edu|gov|int|mil|net|org|biz|info|pro|name|museum|coop|aero|xxx|idv|mobi|cc|me

  地域型域名比较多,应该是每个国家地区都会有吧,有心可以去收集,不过据我了解这个域名都是2个字母构成的,它可以单独使用也可以喝国际顶级域名结合使用地域型域名如:

  cn 中国

  tw 台湾

  hk 香港

  域名例子:

  .cn

  baidu.com

  .com.cn

  以.dom.cn为例:phpwind(自定义部分).com(国际域名部分).cn(地域型域名部分)

  获取顶级域名的PHP函数

  

复制代码 代码如下:

  function getdomain($url) {

  $host = strtolower ( $url );

  if (strpos ( $host, '/' ) !== false) {

  $parse = @parse_url ( $host );

  $host = $parse ['host'];

  }

  $topleveldomaindb = array ('com', 'edu', 'gov', 'int', 'mil', 'net', 'org', 'biz', 'info', 'pro', 'name', 'museum', 'coop', 'aero', 'xxx', 'idv', 'mobi', 'cc', 'me' );

  $str = '';

  foreach ( $topleveldomaindb as $v ) {

  $str .= ($str ? '|' : '') . $v;

  }

  $matchstr = "[^\.]+\.(?:(" . $str . ")|\w{2}|((" . $str . ")\.\w{2}))$";

  if (preg_match ( "/" . $matchstr . "/ies", $host, $matchs )) {

  $domain = $matchs ['0'];

  } else {

  $domain = $host;

  }

  return $domain;

  }

  使用例子:

  

复制代码 代码如下:

  $str = "http://www.glzy8.com/tools/zhengze.html";

  echo getdomain ( $str );

  输出:glzy8.com