PHP实现获取url地址中顶级域名的方法示例
本文实例讲述了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“), ‘
‘;
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“), ‘
‘;
运行结果:
abc.com
abc.com
abc.com
qq.com
cfi.net.cn
xysoft.cc
sina.com.cn
还没有评论,来说两句吧...