站长图库

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

 发布时间 2019-06-16 13:59:17 热度  718

 Tag标签:  顶级域名黑名单
广告
广告
广告
广告
广告

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

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

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

<?php
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].+\.(com|net|org|gov|edu)\.cn$/';
    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.com/s/j?wd=djl"), '<br>';
echo getTopHost("http://www.abc.com/s/j?wd=djl"), '<br>';
echo getTopHost("http://2.www.abc.com/s/j?wd=djl"), '<br>';
echo getTopHost("https://mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="), '<br>';
echo getTopHost("http://cfi.net.cn/"), '<br>';
echo getTopHost("https://www.xysoft.cc/php/php-curl-downfile.html/"), '<br>';
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

站长图库

站长素材 - 建站资源分享平台

猜你喜欢
使用thinkphp3.2.3开发微信授权登录详细教程

使用thinkphp3.2.3开发微信授权登录详细教程

后端语言 403 2019-04-15

最近开发微信,涉及到微信用户登录的问题,研究了一下还是搞定了,整理了一下跟大家贴出来我写的这个代码吧,需要用的...

TAG:园艺wordpress博客模板

四种PHP生成唯一订单号的方法

四种PHP生成唯一订单号的方法

后端语言 530 2018-12-10

这几天一直在写个人使用的用户中心,虽然期间遇到不少的问题,但还是一点点的都解决了,也从制作期间学到不少的知识,...

TAG:园艺wordpress博客模板

PHP常用函数之根据生日计算年龄功能示例

PHP常用函数之根据生日计算年龄功能示例

后端语言 141 2019-10-26

这篇文章主要介绍了PHP常用函数之根据生日计算年龄功能,结合实例形式分析了php日期相关转换与计算操作技巧,需...

TAG:园艺wordpress博客模板

关于thinkphp5中分页paginate()之后的数据中添加键值

关于thinkphp5中分页paginate()之后的数据中添加键值

后端语言 45 2020-01-13

关于thinkphp5中分页 paginate() 之后的数据中添加键值;平常的使用中给数组中添加键值直接$d...

TAG:园艺wordpress博客模板