php取得URL的根域名的解决办法
内容摘要
这篇文章主要为大家详细介绍了php取得URL的根域名的简单示例,具有一定的参考价值,可以用来参考一下。
文章正文
这篇文章主要为大家详细介绍了php取得URL的根域名的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | <code> <?php /** * 取得根域名 * * @author lonely * @create 2011-3-11 * @version 0.1 * @lastupdate lonely * @package Sl */ class Sl_RootDomain{ private static $self ; private $domain =null; private $host =null; private $state_domain ; private $top_domain ; /** * 取得域名分析实例 * Enter description here ... */ public static function instace(){ if (!self:: $self ) self:: $self = new self(); return self:: $self ; } private function __construct(){ $this ->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' , 'be' , 'is' , 'pr' , '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' , 'km' , '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' ); $this ->top_domain= array ( 'com' , 'arpa' , 'edu' , 'gov' , 'int' , 'mil' , 'net' , 'org' , 'biz' , 'info' , 'pro' , 'name' , 'museum' , 'coop' , 'aero' , 'xxx' , 'idv' , 'me' , 'mobi' ); $this ->url= $_SERVER [ 'HTTP_HOST' ]; } /** * 设置URL * Enter description here ... * @param string $url */ public function setUrl( $url =null){ $url = $url ? $url : $this ->url; if ( empty ( $url )) return $this ; if (!preg_match( "/^http::/is" , $url )) $url = "http://" . $url ; $url = parse_url ( strtolower ( $url )); $urlarr = explode ( "." , $url [ 'host' ]); $count = count ( $urlarr ); if ( $count <=2){ $this ->domain= array_pop ( $url ); } else if ( $count >2){ $last = array_pop ( $urlarr ); $last_1 = array_pop ( $urlarr ); if (in_array( $last , $this ->top_domain)){ $this ->domain= $last_1 . '.' . $last ; $this ->host=implode( '.' , $urlarr ); } else if (in_array( $last , $this ->state_domain)){ $last_2 = array_pop ( $urlarr ); if (in_array( $last_1 , $this ->top_domain)){ $this ->domain= $last_2 . '.' . $last_1 . '.' . $last ; $this ->host=implode( '.' , $urlarr ); } else { $this ->host=implode( '.' , $urlarr ). $last_2 ; $this ->domain= $last_1 . '.' . $last ; } } } return $this ; } /** * 取得域名 * Enter description here ... */ public function getDomain(){ return $this ->domain; } /** * 取得主机 * Enter description here ... */ public function getHost(){ return $this ->host; } } ?> </code> |
注:关于php取得URL的根域名的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释