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 相关文章推荐
用缓存实现静态页面的测试
Dec 06 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
学习php中的正则表达式
Aug 17 PHP
php中Ctype函数用法详解
Dec 09 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
详解php的socket通信
Aug 11 PHP
php文件上传你必须知道的几点
Oct 20 PHP
php分页查询的简单实现代码
Mar 14 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
golang与PHP输出excel示例
2016/07/22 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
python uuid模块使用实例
2015/04/08 Python
python实现在windows下操作word的方法
2015/04/28 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
Python跳出多重循环的方法示例
2019/07/03 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
2014和解协议书范文
2014/09/15 职场文书
劳模事迹材料范文
2014/12/24 职场文书
小人国观后感
2015/06/11 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js