高效PHP脚本:精确提取URL中的根域名

在处理网络数据时,经常需要从完整的URL中提取根域名。传统的方法是通过匹配域名后缀,但这种方法不仅繁琐,而且难以跟上不断更新的后缀列表。本文将介绍一种使用PHP正则表达式来精确提取根域名的方法,它简单、高效,且适用于大多数情况。

PHP函数详解

/**
 * 提取URL中的根域名
 * @param string $url 需要处理的完整URL地址
 * @param bool $tld 是否包含顶级域名后缀
 * @return string|false 根域名或false
 */
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;
}

正则表达式解析

  • [a-z0-9][a-z0-9\-]{1,63}:匹配域名的开头字符,可以是字母或数字,后面跟着1到63个字母、数字或短横线。

  • \.[a-z\.]{2,6}:匹配域名的后缀,包括点号和2到6个字母或点号的组合,代表顶级域名。文章来源地址https://www.toymoban.com/article/740.html

实用示例

// 示例1:提取带www的域名
echo getBaseDomainByUrl('https://www.toymoban.com'); // 输出:toymoban.com

// 示例2:提取无www的域名
echo getBaseDomainByUrl('https://toymoban.com'); // 输出:toymoban.com

// 示例3:提取带顶级域名后缀
echo getBaseDomainByUrl('https://www.toymoban.com.cn', true); // 输出:toymoban.com.cn

到此这篇关于高效PHP脚本:精确提取URL中的根域名的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/article/740.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面错误!请稍后再试~

    Tob