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

 5529

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

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

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

  1. <?php
  2. header('content-type:text/html;charset=utf-8');
  3. //获取顶级域名
  4. function getTopHost($url)
  5. {
  6.     $url   = strtolower($url); //首先转成小写
  7.     $hosts = parse_url($url);
  8.     $host  = $hosts['host'];
  9.     //查看是几级域名
  10.     $data = explode('.', $host);
  11.     $n    = count($data);
  12.     //判断是否是双后缀
  13.     $preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
  14.     if (($n > 2) && preg_match($preg, $host)) {
  15.         //双后缀取后3位
  16.         $host = $data[$n - 3] . '.' . $data[$n - 2] . '.' . $data[$n - 1];
  17.     } else {
  18.         //非双后缀取后两位
  19.         $host = $data[$n - 2] . '.' . $data[$n - 1];
  20.     }
  21.     return $host;
  22. }
  23. // 测试
  24. echo getTopHost("http://ABC.com/s/j?wd=djl"), '<br>';
  25. echo getTopHost("http://www.abc.com/s/j?wd=djl"), '<br>';
  26. echo getTopHost("http://2.www.abc.com/s/j?wd=djl"), '<br>';
  27. echo getTopHost("https://mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="), '<br>';
  28. echo getTopHost("http://cfi.net.cn/"), '<br>';
  29. echo getTopHost("https://www.xysoft.cc/php/php-curl-downfile.html/"), '<br>';
  30. echo getTopHost("https://www.sina.com.cn/?from=kandian"), '<br>';

运行结果:

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

本文网址:https://www.zztuku.com/detail-7689.html
站长图库 - PHP实现获取url地址中顶级域名的方法示例
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐