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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
PHP使用递归生成文章树
Apr 21 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
YII框架常用技巧总结
Apr 27 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
php木马webshell扫描器代码
2012/01/25 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
js编写选项卡效果
2017/05/23 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
Python字符编码判断方法分析
2016/07/01 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python实现微信防撤回神器
2019/04/29 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
python statsmodel的使用
2020/12/21 Python
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
工程招投标邀请书
2014/01/26 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB