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执行速度全攻略(下)
Oct 09 PHP
一个程序下载的管理程序(一)
Oct 09 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
php编写的一个E-mail验证类
Mar 25 PHP
PHP中foreach()用法汇总
Jul 02 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHPMailer发送邮件
Dec 28 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
php二维数组按某个键值排序的实例讲解
Feb 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编程开发“虚拟域名”系统
2006/10/09 PHP
建立动态的WML站点(一)
2006/10/09 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
php截取视频指定帧为图片
2016/05/16 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
Javascript 继承实现例子
2009/08/12 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
理解JavaScript中的对象 推荐
2011/01/09 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
对python中return和print的一些理解
2017/08/18 Python
python简易远程控制单线程版
2018/06/20 Python
详解Python装饰器
2019/03/25 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Django admin组件的使用
2020/10/24 Python
举例讲解Python装饰器
2020/12/24 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
简述数据库的设计过程
2015/06/22 面试题
《小池塘》教学反思
2014/02/28 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle