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分页函数
Jul 08 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php比较两个字符串长度的方法
Jul 13 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
Django之模板层的实现代码
2019/09/09 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
关于环保的标语
2014/06/13 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
英文导游词
2015/02/13 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python