当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-25 14:08:52 浏览: 评论:0 

这篇文章主要介绍了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. 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>'

运行结果:

  1. abc.com 
  2. abc.com 
  3. abc.com 
  4. qq.com 
  5. cfi.net.cn 
  6. cfi.net.cn 
  7. sina.com.cn

Tags: PHP获取url PHP顶级域名

分享到: