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


Posted in PHP onJune 05, 2019

本文实例讲述了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 相关文章推荐
PHP新手上路(十二)
Oct 09 PHP
PHP 5.0 Pear安装方法
Dec 06 PHP
PHP 变量类型的强制转换
Oct 23 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
php计算十二星座的函数代码
Aug 21 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP token验证生成原理实例分析
Jun 05 #PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 #PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 #PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 #PHP
PHP使用CURL实现下载文件功能示例
Jun 03 #PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 #PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 #PHP
You might like
两个强悍的php 图像处理类1
2009/06/15 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
小谈php正则提取图片地址
2014/03/27 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
python实现的重启关机程序实例
2014/08/21 Python
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python验证企业工商注册码
2015/10/25 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
django2.0扩展用户字段示例
2019/02/13 Python
Python实现SMTP邮件发送
2020/06/16 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
C有"按引用传递"吗
2016/09/06 面试题
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
节约每一滴水演讲稿
2014/09/09 职场文书
计划生育证明书写要求
2014/09/17 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
同意报考证明
2015/06/17 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
Ajax实现三级联动效果
2021/10/05 Javascript