php教程

超轻量级php框架startmvc

PHP自定义函数获取URL中一级域名的方法

更新时间:2020-03-11 14:06:13 作者:startmvc
本文实例讲述了PHP自定义函数获取URL中一级域名的方法。分享给大家供大家参考,具体如下

本文实例讲述了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 获取 URL 一级域名