获取url地址中顶级域名

迷南。 2022-03-02 12:48 474阅读 0赞

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. $host = parse_url($url)['host'];
  13. //查看是几级域名
  14. $data = explode('.', $host);
  15. $n = count($data);
  16. //判断是否是双后缀
  17. $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
  18. if(($n > 2) && preg_match($preg,$host)){
  19. //双后缀取后3位
  20. $host = $data[$n-3].'.'.$data[$n-2].'.'.$data[$n-1];
  21. }else{
  22. //非双后缀取后两位
  23. $host = $data[$n-2].'.'.$data[$n-1];
  24. }
  25. return $host;
  26. }
  27. // 测试
  28. echo getTopHost("http://ABC.com/s/j?wd=djl"),'<br>';
  29. echo getTopHost("http://www.abc.com/s/j?wd=djl"),'<br>';
  30. echo getTopHost("http://2.www.abc.com/s/j?wd=djl"),'<br>';
  31. echo getTopHost("https://mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="),'<br>';
  32. echo getTopHost("http://cfi.net.cn/"),'<br>';
  33. echo getTopHost("http://www.cfi.NEt.cn/"),'<br>';
  34. echo getTopHost("https://www.sina.com.cn/?from=kandian"),'<br>';

发表评论

表情:
评论列表 (有 0 条评论,474人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用java从url获取域名

    昨天再开发中遇到个小问题,本来不值得写的,但是最近一直没写文章,决定还是简单写一下,刷刷存在感吧。 有个需求,要从url里面获取出完整的域名。从网上找了一下,大部分都是下面这