本文实例讲述了PHP自定义函数获取URL中一级域名的方法。分享给大家供大家参考,具体如下:
<?php
/*
* Created on 2016-8-23
*/
function regular_domain($domain)
{
if (substr ( $domain, 0, 7 ) == "http://") {
$domain = substr ( $domain, 7 );
}
if (strpos ( $domain, "/" ) !== false) {
$domain = substr ( $domain, 0, strpos ( $domain, "/" ) );
}
return strtolower ( $domain );
}
function 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) {
// just in case of something like NAME.COM
break;
}
if (in_array ( $sub_domain [$i], $iana_root )) {
$top_domain_count ++;
$top_domain = "." . $sub_domain [$i] . $top_domain;
if ($top_domain_count >= 2) {
break;
}
}
}
$top_domain = $sub_domain [count ( $sub_domain ) - $top_domain_count - 1] . $top_domain;
return $top_domain;
}
echo top_domain("http://tools.jb51.net/");
?>
运行结果为:
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。