php教程

超轻量级php框架startmvc

PHP实现获取url地址中顶级域名的方法示例

更新时间:2020-04-05 14:02:08 作者:startmvc
本文实例讲述了PHP实现获取url地址中顶级域名的方法。分享给大家供大家参考,具体如下:

本文实例讲述了PHP实现获取url地址中顶级域名的方法。分享给大家供大家参考,具体如下:

parse_url()获取到的host时多级域名,如:mp.weixin.qq.com。做域名黑名单的时候我们需要得到顶级域名。

有不足之处还请留言指正,谢谢。


<?php
/**
 * @Author: Ding Jianlong
 * @Date: 2019-03-07 16:14:04
 * @Last Modified by: Ding Jianlong
 * @Last Modified time: 2019-03-20 13:45:12
 */
header('content-type:text/html;charset=utf-8');
//获取顶级域名
function getTopHost($url){
 $url = strtolower($url); //首先转成小写
 $hosts = parse_url($url);
 $host = $hosts['host'];
 //查看是几级域名
 $data = explode('.', $host);
 $n = count($data);
 //判断是否是双后缀
 $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
 if(($n > 2) && preg_match($preg,$host)){
 //双后缀取后3位
 $host = $data[$n-3].'.'.$data[$n-2].'.'.$data[$n-1];
 }else{
 //非双后缀取后两位
 $host = $data[$n-2].'.'.$data[$n-1];
 }
 return $host;
}
// 测试
echo getTopHost("http://ABC.com/s/j?wd=djl"),'<br>';
echo getTopHost("http://www.abc.com/s/j?wd=djl"),'<br>';
echo getTopHost("http://2.www.abc.com/s/j?wd=djl"),'<br>';
echo getTopHost("https://mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="),'<br>';
echo getTopHost("http://cfi.net.cn/"),'<br>';
echo getTopHost("http://www.cfi.NEt.cn/"),'<br>';
echo getTopHost("https://www.sina.com.cn/?from=kandian"),'<br>';

运行结果:

abc.com abc.com abc.com qq.com cfi.net.cn cfi.net.cn sina.com.cn

PHP url地址 顶级域名