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类
Nov 25 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
Linux下PHP连接Oracle数据库
Aug 20 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 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开发的一些注意点总结
2010/10/12 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python的Django框架中的Context使用
2015/07/15 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
python实现简易学生信息管理系统
2020/04/05 Python
python标识符命名规范原理解析
2020/01/10 Python
党员廉洁自律承诺书
2014/05/26 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2014年物流工作总结
2014/11/25 职场文书
上班迟到检讨书
2015/05/06 职场文书
课程设计感想范文
2015/08/11 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL