PHP實現獲取url地址中頂級域名的方法示例

這篇文章主要介紹了PHP實現獲取url地址中頂級域名的方法,結合實例形式分析了php使用parse_url()針對URL域名解析相關操作技巧,需要的朋友可以參考下

本文實例講述了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 socket用法總結》、《php字符串(string)用法總結》、《PHP數學運算技巧總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《PHP網絡編程技巧總結

希望本文所述對大家PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章