トップレベルドメイン名を抽出するPHP関数
regulatory_domain はドメイン名を標準形式に変換するために使用され、top_domain はトップレベル ドメイン名を抽出するために使用されます。実際のテスト結果は良好です。
関数 Regular_domain($domain)
{
if (substr($domain,0,7) == 'http://')
{
$domain = substr($domain, 7);
}
if (strpos($domain, '/') !== false)
{
$domain = substr($domain, 0, strpos($domain, '/'));
}
return strtoupper($domain);
}
関数 top_domain($domain)
{
$domain = Regular_domain($domain);
$iana_root = array('AC', 'AD', 'AE', 'AERO', 'AF', 'AG', 'AI', 'AL', 'AM', 'AN' 、'AO'、'AQ'、'AR'、'ARPA'、'AS'、'ASIA'、'AT'、'AU'、'AW'、'AX'、'AZ'、'BA'、' BB'、'BD'、'BE'、'BF'、'BG'、'BH'、'BI'、'BIZ'、'BJ'、'BL'、'BM'、
「BN」、「BO」、「BQ」、「BR」、「BS」、「BT」、「BV」、「BW」、「BY」、「BZ」、「CA」、「CAT」、「CC」 '、'CD'、'CF'、'CG'、'CH'、'CI'、'CK'、'CL'、'CM'、'CN'、'CO'、'COM'、'COOP '、'CR'、'CU'、'CV'、'CW'、'CX'、'CY'、'CZ'、'DE'、'DJ'、'DK'、'DM'、'DO'、 「DZ」、「EC」、「EDU」、「EE」、「EG」、
「EH」、「ER」、「ES」、「ET」、「EU」、「FI」、「FJ」、「FK」、「FM」、「FO」、「FR」、「GA」、「GB」 '、'GD'、'GE'、'GF'、'GG'、'GH'、'GI'、'GL'、'GM'、'GN'、'GOV'、'GP'、'GQ'、 「GR」、「GS」、「GT」、「GU」、「GW」、「GY」、「HK」、「HM」、「HN」、「HR」、「HT」、「HU」、「ID」 '、'IE'、'IL'、'IM'、'IN'、'INFO'、
「INT」、「IO」、「IQ」、「IR」、「IS」、「IT」、「JE」、「JM」、「JO」、「JOBS」、「JP」、「KE」、「KG」 '、'KH'、'KI'、'KM'、'KN'、'KP'、'KR'、'KW'、'KY'、'KZ'、'LA'、'LB'、'LC'、 「LI」、「LK」、「LR」、「LS」、「LT」、「LU」、「LV」、「LY」、「MA」、「MC」、「MD」、「ME」、「MF」 '、'MG'、'MH'、'MIL'、'MK'、
'ML'、'MM'、'MN'、'MO'、'MOBI'、'MP'、'MQ'、'MR'、'MS'、'MT'、'MU'、'MUSEUM'、'MV '、'MW'、'MX'、'MY'、'MZ'、'NA'、'NAME'、'NC'、'NE'、'NET'、'NF'、'NG'、'NI'、 「NL」、「NO」、「NP」、「NR」、「NU」、「NZ」、「OM」、「ORG」、「PA」、「PE」、「PF」、「PG」、「PH」 '、'PK'、'PL'、'PM'、
「PN」、「PR」、「PRO」、「PS」、「PT」、「PW」、「PY」、「QA」、「RE」、「RO」、「RS」、「RU」、「RW」 '、'SA'、'SB'、'SC'、'SD'、'SE'、'SG'、'SH'、'SI'、'SJ'、'SK'、'SL'、'SM'、 「SN」、「SO」、「SR」、「SS」、「ST」、「SU」、「SV」、「SX」、「SY」、「SZ」、「TC」、「TD」、「TEL」 '、'TF'、'TG'、'TH'、'TJ'、'TK'、
「TL」、「TM」、「TN」、「TO」、「TP」、「TR」、「TRAVEL」、「TT」、「TV」、「TW」、「TZ」、「UA」、「UG」 '、'UK'、'UM'、'US'、'UY'、'UZ'、'VA'、'VC'、'VE'、'VG'、'VI'、'VN'、'VU'、 'WF'、'WS'、'XXX'、'YE'、'YT'、'ZA'、'ZM'、'ZW');
$sub_domain =explode('.', $domain);
$top_domain = '';
$top_domain_count = 0;
for ($i = count($sub_domain) - 1; $i >= 0; $i --)
{
if ($i == 0)
{
//NAME.COM
のような場合に備えて
休憩;
}
if (in_array($sub_domain[$i], $iana_root))
{
$top_domain_count ++;
$top_domain = '.' $sub_domain;
if ($top_domain_count >= 2)
{
休憩;
}
}
}
$top_domain = $sub_domain[count($sub_domain) - $top_domain_count - 1] .
$top_domain を返す;
}