今天,有一个PHP项目,由于域名做了泛解析,有大量的好多二级,甚至是三级域名.......等等,又需要获取到一级域名,我们直接通过 $_SERVER 来获取肯定是不行的,只好写了一个函数。
PHP获取一级域名函数代码:
<?php
function get_host0($host){
$data = explode('.', $host);
$co_ta = count($data);
//判断是否是双后缀
$zi_tow = true;
$host_cn = ['com.cn','net.cn','org.cn','gov.cn'];
foreach($host_cn as $host0){
if(strpos($host,$host0)){
$zi_tow = false;
}
}
//如果是返回FALSE ,如果不是返回true
if($zi_tow == true){
// 是否为当前域名
if($host== 'localhost'){
$host0 = $data[$co_ta-1];
}
else{
$host0 = $data[$co_ta-2].'.'.$data[$co_ta-1];
}
}
else{
$host0 = $data[$co_ta-3].'.'.$data[$co_ta-2].'.'.$data[$co_ta-1];
}
return $host0;
}
?>
函数调用方法:
<?php
//函数调用方法
$yuming = $_SERVER['HTTP_HOST'];
$yuming = get_host0($yuming);
var_dump($_SERVER['SERVER_NAME']);
var_dump($yuming);
?>
以我这为例子,最终结果如下图:
总结:
PHP获取一级域名代码就是这么的简单,你学会了吗?
2024年01月06日 14:52:41 沙发
优秀,你再测一下
//函数调用方法
$yuming = ‘http://11.111.iy99.cn/adad.html’;
//$yuming = $_SERVER[‘HTTP_HOST’];
$yuming = get_host0($yuming);
//var_dump($_SERVER[‘SERVER_NAME’]);
var_dump($yuming);
2024年01月07日 09:46:03 1层
@测一下 你不能把“ $yuming = ‘http://11.111.iy99.cn/adad.html’ ”写死的,因为它是按“.”来分割的,你要按照 $yuming = $_SERVER[‘HTTP_HOST’]; 来写,只获取HOST部分,像你那样写死就是整个URL了。