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 相关文章推荐
ZF等常用php框架中存在的问题
Jan 10 PHP
php笔记之常用文件操作
Oct 12 PHP
PHP $_FILES函数详解
Mar 09 PHP
php长字符串定义方法
Jul 12 PHP
PHP实现下载功能的代码
Sep 29 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
PHP合并静态文件详解
Nov 14 PHP
php 类自动载入的方法
Jun 03 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
pytorch简介
2020/11/11 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
英文简历中的自我评价
2013/10/06 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB