如何获得使用PHP的第一分区?(How to get the first subdomain wit

2019-07-05 00:33发布

我有一个静态域dev.example.com通配符子域,像这样*.dev.example.com

我需要检测当前通配符子域的名称。 所以,如果我浏览sub.dev.example.com我怎么“分”?

$env_domain = dev.example.com;
$subdomain = array_shift( explode( '.', $_SERVER['HTTP_HOST'] ) ) .'.'. $env_domain;
echo $subdomain;

目前,这个返回dev 。 我需要它返回sub

我在这里想最好的做法是返回最低级别域(第一分区)。

请注意,我不解析URL,而是一个给定域。

Answer 1:

$domain = 'sub.dev.example.com';
$tmp = explode('.', $domain);
$subdomain = current($tmp);
print($subdomain);     // prints "sub"


Answer 2:

这是问题的另一个简单的解决方案。

echo array_shift((explode(".",$_SERVER['HTTP_HOST'])));


Answer 3:

我想用parse_url功能是更好的方法:

getUrlSubdomain($url){
    $urlSegments = parse_url($url);
    $urlHostSegments = explode('.', $urlSegments['host']);

    if(count($urlHostSegments) > 2) {
        return $urlHostSegments[0];
    }
    else{
        return null;
    }
}


Answer 4:

这里有一个小功能将这样的伎俩。 只要坚持$ _ SERVER [“HTTP_HOST”]进入功能,你应该得到你想要的

function getSubDomain ($domain) {
    $eDom = explode('.', $domain);
    return $eDom[0];
}

echo getSubDomain('sub.dev.example.com'); // echo 'sub' 


Answer 5:

从PHP 5.3,你可以使用与真实参数的strstr()

echo strstr('sub.dev.example.com', '.', true); //prints sub

原始链接



文章来源: How to get the first subdomain with PHP?
标签: php subdomain