在處理網(wǎng)絡(luò)數(shù)據(jù)時(shí),經(jīng)常需要從完整的URL中提取根域名。傳統(tǒng)的方法是通過匹配域名后綴,但這種方法不僅繁瑣,而且難以跟上不斷更新的后綴列表。本文將介紹一種使用PHP正則表達(dá)式來精確提取根域名的方法,它簡單、高效,且適用于大多數(shù)情況。
PHP函數(shù)詳解
/** * 提取URL中的根域名 * @param string $url 需要處理的完整URL地址 * @param bool $tld 是否包含頂級(jí)域名后綴 * @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; }
正則表達(dá)式解析
[a-z0-9][a-z0-9\-]{1,63}:匹配域名的開頭字符,可以是字母或數(shù)字,后面跟著1到63個(gè)字母、數(shù)字或短橫線。文章來源:http://www.zghlxwxcb.cn/article/740.html
\.[a-z\.]{2,6}:匹配域名的后綴,包括點(diǎn)號(hào)和2到6個(gè)字母或點(diǎn)號(hào)的組合,代表頂級(jí)域名。文章來源地址http://www.zghlxwxcb.cn/article/740.html
實(shí)用示例
// 示例1:提取帶www的域名 echo getBaseDomainByUrl('http://www.zghlxwxcb.cn'); // 輸出:toymoban.com // 示例2:提取無www的域名 echo getBaseDomainByUrl('https://toymoban.com'); // 輸出:toymoban.com // 示例3:提取帶頂級(jí)域名后綴 echo getBaseDomainByUrl('http://www.zghlxwxcb.cn.cn', true); // 輸出:toymoban.com.cn
到此這篇關(guān)于高效PHP腳本:精確提取URL中的根域名的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!