<?php #使用示例echo getbasedomain (' http://blog.jp.goo.ne.jp/index.php ')->domain;echo "\ n"; Echo Getbasedomain (' http://51.ca/index.php ')->domain;echo "\ n"; Echo getbasedomain (' http://blog.ab.cc.win.aisa.hk/index.php ') Domain;echo "\ n"; function Getbasedomain ($url = ") {if (! $url) {return $url; } #列举域名中固定元素 $state _domain = Array (' al ', ' dz ', ' af ', ' ar ', ' ae ', ' aw ', ' om ', ' az ', ' eg ', ' et ', ' ie ', ' ee ', ' ad ', ' ao ', ' ai ' ', ' AG ', ' at ', ' au ', ' Mo ', ' BB ', ' pg ', ' BS ', ' PK ', ' py ', ' ps ', ' bh ', ' pa ', ' BR ', ' by ', ' BM ', ' BG ', ' MP ', ' BJ ', ' being ', ' is ', ' was ', ' BA ' ', ' pl ', ' bo ', ' BZ ', ' bw ', ' BT ', ' BF ', ' bi ', ' bv ', ' KP ', ' gq ', ' dk ', ' de ', ' tl ', ' TP ', ' TG ', ' DM ', ' do ', ' ru ', ' ec ', ' er ', ' fr ', ' fo ', ' pf ', ' gf ', ' tf ', ' va ', ' ph ', ' fj ', ' fi ', ' CV ', ' FK ', ' GM ', ' CG ', ' CD ', ' Co ', ' Cr ', ' GG ', ' gd ', ' GL ', ' ge ', ' cu ', ' GP ', ' gu ', ' Gy ', ' KZ ', ' ht ', ' kr ', ' nl ', ' an ', ' HM ', ' hn ', ' ki ', ' DJ ', ' kg ', ' gn ', ' GW ', ' CA ', ' gh ', ' ga ', ' kh ', ' cz ', ' ZW ', ' cm ', ' QA ', ' KY ', ' Miles ', ' ci ', ' kw ', ' cc ', ' hr ', ' ke ', ' ck ', ' lv ', ' ls ', ' la ', ' lb ', ' lt ', ' LR ', ' ly ', ' Li ', ' re ', ' Lu ', ' rw ', ' ro ', ' mg ', ' im ', ' mv ', ' MT ' ', ' MW ', ' my ', ' ml', ' Mk ', ' MH ', ' MQ ', ' yt ', ' mu ', ' Mr ', ' US ', ' um ', ' as ', ' VI ', ' mn ', ' Ms ', ' BD ', ' PE ', ' FM ', ' mm ', ' MD ', ' Ma ', ' MC ', ' mz ', ' mx ', ' NR ', ' np ', ' ni ', ' ne ', ' ng ', ' nu ', ' No ', ' nf ', ' na ', ' za ', ' aq ', ' GS ', ' EU ', ' pw ', ' pn ', ' pt ', ' JP ', ' se ', ' ch ', ' SV ', ' ws ', ' Yu ', ' SL ' ', ' SN ', ' cy ', ' SC ', ' sa ', ' cx ', ' st ', ' sh ', ' kn ', ' LC ', ' sm ', ' pm ', ' VC ', ' lk ', ' sk ', ' si ', ' sj ', ' sz ', ' SD ', ' SR ', ' SB ', ' so ', ' TJ ' ', ' tw ', ' th ', ' tz ', ' to ', ' TC ', ' TT ', ' tn ', ' TV ', ' tr ', ' TM ', ' TK ', ' wf ', ' vu ', ' GT ', ' ve ', ' bn ', ' ug ', ' ua ', ' uy ', ' uz ', ' es ', ' eh ', ' gr ', ' HK ', ' SG ', ' NC ', ' NZ ', ' Hu ', ' sy ', ' JM ', ' am ', ' ac ', ' ye ', ' iq ', ' ir ', ' il ', ' it ', ' in ', ' id ', ' UK ', ' VG ', ' io ', ' Jo ', ' vn ', ' zm ', ' je ', ' TD ', ' GI ', ' cl ', ' CF ', ' cn ', ' yr ', ' com ', ' arpa ', ' edu ', ' gov ', ' int ', ' mil ', ' net ', ' org ', ' biz ', ' info ', ' Pro ', ' Name ', ' museum ', ' Coop ', ' aero ', ' xxx ', ' idv ', ' Me ', ' mobi ', ' Asia ', ' ax ', ' bl ', ' BQ ', ' cat ', ' CW ', ' GB ', ' Jobs ', ' MF ', ' rs ', ' Su ', ' SX ', ' tel ', ' travel '); if (!preg_match ("/^http/is", $url)) {$url = "http://". $url; } $res = null; $res->domain = null; $res->host = null; $url _parse = Parse_url (Strtolower ($url)); $urlarr = Explode (".", $url _parse[' host '); $count = count ($urlarr); if ($count <= 2) {#当域名直接根形式不存在host部分直接输出 $res->domain = $url _parse[' host ']; }elseif ($count > 2) {$last = Array_pop ($urlarr); $last _1 = Array_pop ($urlarr); $last _2 = Array_pop ($urlarr); $res->domain = $last _1. '. '. $last; $res->host = $last _2; if (In_array ($last, $state _domain)) {$res->domain= $last _1. '. $last; $res->host=implode ('. ', $urlarr); } if (In_array ($last _1, $state _domain)) {$res->domain = $last _2. '. $last _1. $last; $res->host = Implode ('. ', $urlarr); } #print_r (Get_defined_vars ());d ie; } return $res; }
PHP extracts root domain based on URL