完整代码示例:
$s =<<< TXT www2.abc.com.cn www3.abc.com.cn xx.xx.abc.com.cn www2.abc.cn www3.abc.cn xx.xx.abc.cn www2.abc.us www3.abc.us xx.xx.abc.us TXT; $a = preg_split("/[\r\n]+/", $s); //待识别域名 $g = explode('|', 'af|aq|at|au|be|bg|br|ca|ch|cl|cn|de|eg|es|fi|fr|gr|hk|hu|ie|il|in|iq|ir|is|it|jp|kr|mx|nl|no|nz|pe|ph|pr|pt|ru|se|sg|th|tr|tw|uk|us|za'); //允许的国家域名 $j = array('com', 'net'); //允许的机构名 foreach($a as $r) { echo "$r ==> "; $n = 0; $h = array_slice(explode('.', $r), 1); //去掉主机名 if(array_intersect($g, $h)) $n++; if(array_intersect($j, $h)) $n++; if($n) echo join('.', array_slice($h, -($n+1))); echo PHP_EOL; }
运行结果:
www2.abc.com.cn ==> abc.com.cnwww3.abc.com.cn ==> abc.com.cnxx.xx.abc.com.cn ==> abc.com.cnwww2.abc.cn ==> abc.cnwww3.abc.cn ==> abc.cnxx.xx.abc.cn ==> abc.cnwww2.abc.us ==> abc.uswww3.abc.us ==> abc.usxx.xx.abc.us ==> abc.us