一条大河

PHP 获取 URL 中的根域名(非匹配后缀)

提取 URL 中的根域名部分,找了一大圈,很多都是通过域名后缀进行匹配,虽说能实现,但是这样的做法过于繁琐,而且众所周知,域名后缀这种东西,动不动就在更新。

以下案例通过正则方式进行匹配,亲测适用于绝大多数场景。

/**
 * $url 要进行提取的 URL
 * $tld 是否返回顶级域名后缀
 */
function getBaseDomainByUrl($url, $tld = false)
{
    $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, $m)) {
        return ($tld === true) ? substr($m['domain'],($pos = strpos($m['domain'], '.')) !== false ? $pos + 1 : 0) : $m['domain'];
    }
    return false;
}

// 结果:iddahe.com
echo getBaseDomainByUrl('https://www.iddahe.com/zblog/66.html');

(完)

发表评论

◎发表您的看法、交流您的观点,保持友善言论。

搜索
近期留言
近期发表
站点标签
©
 iddahe.com / PHP函数速查 / 变色龙伪原创 / 盗版举报 / 服务器推荐 / 需求定制 / 用户须知
一条大河(一会儿是风,一会儿是水) Z-BlogPHP 驱动 / Theme: Hipaper / RSS / Sitemap