获取顶级域名——PHP笔记

<?php
/*
 * @Project: 
 * @Date: 2021-09-26 20:57:33
 * @LastEditors: Qicloud 、inis
 * @LastEditTime: 2021-10-02 23:14:15
 * @FilePath: \utils\helper.php
 * 落座无言行三载,持笔无悔笑苍生!
 */

/**
 * 获取顶级域名
 * @param string|null $url
 * @return TopDomain
 */
function GetTopDomain(string $url = null)
{
    // 判断网址是否带http://或https:// 
    if (preg_match('/^http(s)?:\\/\\/.+/', $url)) {
        $hosts = parse_url(strtolower($url));
        $host = $hosts['host'];
    } else {
        $host = strtolower($url);
    }

    // 查看是几级域名
    $data = explode('.', $host);
    $n = count($data);
    // 判断是否是双后缀
    $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
    // 双后缀取后3位
    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;
}
THE END