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

网络编程 2021-07-04 23:05www.168986.cn编程入门
这篇文章主要介绍了PHP实现获取url地址中顶级域名的方法,结合实例形式分析了php使用parse_url()针对URL域名解析相关操作技巧,需要的朋友可以参考下

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

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

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

<?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].+\.(|||gov|edu)\.$/';
  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./s/j?wd=djl"),'<br>';
echo getTopHost("http://.abc./s/j?wd=djl"),'<br>';
echo getTopHost("http://2..abc./s/j?wd=djl"),'<br>';
echo getTopHost("https://mp.weixin.qq./s?__=MzA3ODI3ODUzMw=="),'<br>';
echo getTopHost("http://cfi../"),'<br>';
echo getTopHost("http://.cfi.NEt./"),'<br>';
echo getTopHost("https://.sina../?from=kandian"),'<br>';

运行结果

abc.
abc.
abc.
qq.
cfi..
cfi..
sina..

更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by