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

水深无声 2023-06-04 14:58 130阅读 0赞

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

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

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

<?php

header(‘content-type:text/html;charset=utf-8’);

//获取顶级域名

function getTopHost($url)

{

$url = strtolower($url); //首先转成小写

  1. $hosts = parse\_url($url);
  2. $host = $hosts\['host'\];
  3. //查看是几级域名
  4. $data = explode('.', $host);
  5. $n = count($data);

//判断是否是双后缀

  1. $preg = '/\[\\w\].+\\.(com|net|org|gov|edu)\\.cn$/';

if (($n > 2) && preg_match($preg, $host)) {

  1. //双后缀取后3位
  2. $host = $data\[$n - 3\] . '.' . $data\[$n - 2\] . '.' . $data\[$n - 1\];
  3. \} else \{
  4. //非双后缀取后两位
  5. $host = $data\[$n - 2\] . '.' . $data\[$n - 1\];
  6. \}
  7. return $host;

}

// 测试

echo getTopHost(“http://ABC.com/s/j?wd=djl“), ‘
‘;

echo getTopHost(“http://www.abc.com/s/j?wd=djl“), ‘
‘;

echo getTopHost(“http://2.www.abc.com/s/j?wd=djl“), ‘
‘;

echo getTopHost(“https://mp.weixin.qq.com/s?\_\_biz=MzA3ODI3ODUzMw==“), ‘
‘;

echo getTopHost(“http://cfi.net.cn/“), ‘
‘;

echo getTopHost(“https://www.xysoft.cc/php/php-curl-downfile.html/“), ‘
‘;

echo getTopHost(“https://www.sina.com.cn/?from=kandian“), ‘
‘;

  1. 运行结果:

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

发表评论

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

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

相关阅读

    相关 使用java从url获取域名

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