gpt4 book ai didi

PHP实现通过URL提取根域名

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP实现通过URL提取根域名由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

PHP根据URL提取根域名,个人工作中用到,由于网络上很多代码都不能得到正确结果就自己写了一个,欢迎大家使用并提出其中的bug. 。

?
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
<?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' , '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' , '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()); die ;
   }
   return $res ;
   
}

最后此篇关于PHP实现通过URL提取根域名的文章就讲到这里了,如果你想了解更多关于PHP实现通过URL提取根域名的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com