如何用PHP获取URL地址中的顶级域名?
- 内容介绍
- 文章标签
- 相关推荐
本文共计517个文字,预计阅读时间需要3分钟。
原文示例:本文字例讲述了PHP实现获取URL地址中顶级域名的具体方法。分享给广大供家供参考,具体如下:使用parse_url()获取到的host时,多级域名,如:mp.weixin.qq.com。
修改后:本例介绍PHP获取URL顶级域名的实现方法。分享给广大用户参考,具体如下:通过parse_url()获取host,如:mp.weixin.qq.com。当需要进行域名黑名单检测时,我们需要获取到顶级域名。
本文实例讲述了PHP实现获取url地址中顶级域名的方法。分享给大家供大家参考,具体如下:
parse_url()获取到的host时多级域名,如:mp.weixin.qq.com。做域名黑名单的时候我们需要得到顶级域名。
有不足之处还请留言指正,谢谢。
<?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].+\.(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("ABC.com/s/j?wd=djl"),'<br>'; echo getTopHost("www.abc.com/s/j?wd=djl"),'<br>'; echo getTopHost("2.www.abc.com/s/j?wd=djl"),'<br>'; echo getTopHost("mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="),'<br>'; echo getTopHost("cfi.net.cn/"),'<br>'; echo getTopHost("www.cfi.NEt.cn/"),'<br>'; echo getTopHost("www.sina.com.cn/?from=kandian"),'<br>';
运行结果:
abc.com
abc.com
abc.com
qq.com
cfi.net.cn
cfi.net.cn
sina.com.cn
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php socket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
本文共计517个文字,预计阅读时间需要3分钟。
原文示例:本文字例讲述了PHP实现获取URL地址中顶级域名的具体方法。分享给广大供家供参考,具体如下:使用parse_url()获取到的host时,多级域名,如:mp.weixin.qq.com。
修改后:本例介绍PHP获取URL顶级域名的实现方法。分享给广大用户参考,具体如下:通过parse_url()获取host,如:mp.weixin.qq.com。当需要进行域名黑名单检测时,我们需要获取到顶级域名。
本文实例讲述了PHP实现获取url地址中顶级域名的方法。分享给大家供大家参考,具体如下:
parse_url()获取到的host时多级域名,如:mp.weixin.qq.com。做域名黑名单的时候我们需要得到顶级域名。
有不足之处还请留言指正,谢谢。
<?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].+\.(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("ABC.com/s/j?wd=djl"),'<br>'; echo getTopHost("www.abc.com/s/j?wd=djl"),'<br>'; echo getTopHost("2.www.abc.com/s/j?wd=djl"),'<br>'; echo getTopHost("mp.weixin.qq.com/s?__biz=MzA3ODI3ODUzMw=="),'<br>'; echo getTopHost("cfi.net.cn/"),'<br>'; echo getTopHost("www.cfi.NEt.cn/"),'<br>'; echo getTopHost("www.sina.com.cn/?from=kandian"),'<br>';
运行结果:
abc.com
abc.com
abc.com
qq.com
cfi.net.cn
cfi.net.cn
sina.com.cn
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php socket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》
希望本文所述对大家PHP程序设计有所帮助。

