hi,欢迎访问本站!
当前位置: 首页编程开发正文

php怎么获取域名中的顶级域名

墨初 编程开发 423阅读

下面博文中提供两个利用php脚本从一个网址中获取顶级域名的方法函数,大家可以做个参考。

php获取域名中顶级域名的方法

方法1:

下面为一个自定义的php函数,用于获取网址中的顶级域名

/**
 * @name 获取指定网址中顶级域名
 * @param string $url 需要处理的网址
 * 
 * @return string 网址中的顶级域名
 * @host 73so.com
 */
function getdomain($url) 
{
    $host = strtolower($url);   
    if(strpos ( $host, '/' ) !== false) {
        $parse = @parse_url ( $host );
        $host = $parse ['host'];
    }
    
    //网上收集的,有可以不全,可自行进行补充
    $topleveldomaindb = array("top","wang","shop","xyz","kim","vip","ren","cc","xin","site","biz","auto","link","cn","club","net","info","ink","ltd","mobi","pro","red","org","com","group","comcn","netcn","orgcn","fun","online","store","tech","work","run","gold","life","fund","city","world","cool","company","zone","today","chat","show","email","plus","center","team","live","pub","video","social","co","love","icu","art","中国","网店","佛山","广东","公司","集团","我爱你","商标","网络","网址","信息","中文网","在线");
    
    $str = '';
    
    foreach($topleveldomaindb as $v ) {
        $str .= ($str ? '|' : '') . $v;
    }
    
    $matchstr = "[^\.]+\.(?:(".$str.")|\w{2}|((".$str.")\.\w{2}))$";
    
    if (preg_match ( "/".$matchstr."/is",$host,$matchs)) {
        $domain = $matchs ['0'];
    } else {
        $domain = $host;
    }
    return $domain;
}
echo getdomain('https://www.73so.com/');
// 73so.com
echo getdomain('https://www.73so.com/art/78.html');
// 73so.com

方法2:

下面提供的php获取网址中顶级域名的方法要比方法1中的示例简单的多,但也要对双拼后缀的域名做一下单独的处理。

/**
 * @name 获取指定网址中顶级域名
 * @param string $url 需要处理的网址
 * 
 * @return string 网址中的顶级域名
 * @host 73so.com
 */
function getTopHost($url)
{
    $url   = strtolower($url); 
    $hosts = parse_url($url);
    $host  = $hosts['host'];
    $data = explode('.', $host);
    $n = count($data);
    $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
    if (($n > 2) && preg_match($preg, $host)) {
        $host = $data[$n - 3] . '.' . $data[$n - 2] . '.' . $data[$n - 1];
    } else {
        $host = $data[$n - 2] . '.' . $data[$n - 1];
    }
    return $host;
}
echo getTopHost('https://www.73so.com/');
// 73so.com
echo getTopHost('https://www.73so.com/art/78.html');
// 73so.com
标签:
声明:无特别说明,转载请标明本文来源!
相关推荐