请选择 进入手机版 | 继续访问电脑版
绿茶科技社区
这篇文章主要介绍了PHP实现获取url地址中顶级域名的方法,结合实例形式分析了php使用parse_url()针对URL域名解析相关操作技巧,需要的朋友可以参考下
本文实例讲述了PHP实现获取url地址中顶级域名的方法。分享给大家供大家参考,具体如下:
parse_url()获取到的host时多级域名,如:mp.weixin.qq.com。做域名黑名单的时候我们需要得到顶级域名。
有不足之处还请留言指正,谢谢。
  1. <?php
  2. /**
  3. * @Author: Ding Jianlong
  4. * @Date:  2019-03-07 16:14:04
  5. * @Last Modified by:  Ding Jianlong
  6. * @Last Modified time: 2019-03-20 13:45:12
  7. */
  8. header('content-type:text/html;charset=utf-8');
  9. //获取顶级域名
  10. function getTopHost($url){
  11. $url = strtolower($url);  //首先转成小写
  12. $hosts = parse_url($url);
  13. $host = $hosts['host'];
  14. //查看是几级域名
  15.   $data = explode('.', $host);
  16.   $n = count($data);
  17.   //判断是否是双后缀
  18.   $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
  19.   if(($n > 2) && preg_match($preg,$host)){
  20.    //双后缀取后3位
  21.    $host = $data[$n-3].'.'.$data[$n-2].'.'.$data[$n-1];
  22.   }else{
  23.    //非双后缀取后两位
  24.    $host = $data[$n-2].'.'.$data[$n-1];
  25.   }
  26.   return $host;
  27. }
  28. // 测试
  29. echo getTopHost("http://ABC.com/s/j?wd=djl"),'<br>';
  30. echo getTopHost("http://www.abc.com/s/j?wd=djl"),'<br>';
  31. echo getTopHost("http://2.www.abc.com/s/j?wd=djl"),'<br>';
  32. echo getTopHost("https://mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="),'<br>';
  33. echo getTopHost("http://cfi.net.cn/"),'<br>';
  34. echo getTopHost("http://www.cfi.NEt.cn/"),'<br>';
  35. echo getTopHost("https://www.sina.com.cn/?from=kandian"),'<br>';
复制代码
运行结果:
  1. abc.com
  2. abc.com
  3. abc.com
  4. qq.com
  5. cfi.net.cn
  6. cfi.net.cn
  7. sina.com.cn
复制代码




分享到 :
0 人收藏

3 个回复

倒序浏览
邀月  高级会员 | 2019-8-13 07:24:04
我也是坐沙发的
陈希章  高级会员 | 2019-8-26 01:59:19
向楼主学习
yuji4586  高级会员 | 2019-9-11 16:53:23
我也顶起出售广告位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部