3

dev.example.comso のようなワイルドカード サブドメインを持つ の静的ドメインがあります*.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 を解析しているのではなく、特定のドメインを解析していることに注意してください。

4

5 に答える 5

4
$domain = 'sub.dev.example.com';
$tmp = explode('.', $domain);
$subdomain = current($tmp);
print($subdomain);     // prints "sub"
于 2012-12-12T04:11:52.587 に答える
3

これは、質問に対する別の簡単な解決策です。

echo array_shift((explode(".",$_SERVER['HTTP_HOST'])));
于 2015-10-02T08:30:42.880 に答える
1

ここにトリックを行う小さな関数があります。$_SERVER['HTTP_HOST'] を関数に貼り付けるだけで、必要なものが得られるはずです

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

echo getSubDomain('sub.dev.example.com'); // echo 'sub' 
于 2012-12-12T04:38:02.390 に答える
0

PHP 5.3 以降では、strstr() を true パラメーターで使用できます。

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

元のリンク

于 2014-07-16T19:24:53.583 に答える