欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-09 11:42:13
本文实例讲述了php实现获取url地址中*域名的方法。分享给大家供大家参考,具体如下: parse_url()获取到的host时多级域名,如:mp.weixin.qq....

本文实例讲述了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("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("http://www.cfi.net.cn/"),'<br>';
echo gettophost("https://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程序设计有所帮助。