本文實例講述了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://www.49028c.com/"),'<br>';echo getTopHost("http://www.zzvips.com/"),'<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程序設計有所幫助。
新聞熱點
疑難解答
圖片精選