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和ACCESS写聊天室(一)
Oct 09 PHP
使用php4加速网络传输
Oct 09 PHP
PHP 危险函数全解析
Sep 09 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
Symfony页面的基本创建实例详解
Jan 26 PHP
如何实现php图片等比例缩放
Jul 28 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Scrapy的简单使用教程
2017/10/24 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
基于python检查矩阵计算结果
2020/05/21 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
C/C++程序员常见面试题二
2015/11/19 面试题
大学生求职工作的自我评价
2014/02/13 职场文书
运动会稿件100字
2014/02/21 职场文书
语文教育专业求职信
2014/06/28 职场文书
春秋淹城导游词
2015/02/11 职场文书