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 相关文章推荐
初学CAKEPHP 基础教程
Nov 02 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php单例模式示例分享
Feb 12 PHP
php查看网页源代码的方法
Mar 13 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
四个PHP非常实用的功能
Sep 29 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
php 截取中英文混合字符串的方法
May 31 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 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另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python常见字典内建函数用法示例
2018/05/14 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
wxPython色环电阻计算器
2019/11/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
初一生物教学反思
2014/01/18 职场文书
商场促销活动方案
2014/02/08 职场文书
大专学生求职自荐信
2014/07/06 职场文书
2014年教务处工作总结
2014/12/03 职场文书
品质保证书格式
2015/02/28 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
历史博物馆观后感
2015/06/05 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
利用Python多线程实现图片下载器
2022/03/25 Python