-4

私はこれに1、2週間苦労してきましたが、解決できないようです. これが私のスクリプトです:

<?php
$Domain = $_SERVER['SERVER_NAME'];
$paryDomain = explode(".",$Domain);
$Array = count($paryDomain);
$RootDomain = "";
$G_SYSTEMID = "";

if ($Array == "1")
{
    $RootDomain = $paryDomain[0].'.'.$paryDomain[1];
}    
elseif ($Array == "2")
{
    $RootDomain = $paryDomain[1].'.'.$paryDomain[2];
}

if ($RootDomain == "storeboard.com")
{
    $G_SYSTEMID = 1;
}
elseif ($RootDomain == "dcwn.org")
{
    $G_SYSTEMID = 2;
}

echo $G_SYSTEMID;
echo "------------";

?>

最後に 1 または 2.. の結果が得られないのはなぜですか?

どんな助けでも大歓迎です。

ネオジャキー

4

5 に答える 5

2
if ($Array == 1)
{
    $RootDomain = $paryDomain[0]; 
}    
elseif ($Array == 2)
{
    $RootDomain = $paryDomain[0].'.'.$paryDomain[1];
}    
elseif ($Array == 3)
{
    $RootDomain = $paryDomain[1].'.'.$paryDomain[2];
} else {
    //to debug the possible cause 
    $G_SYSTEMID = 'Array length was equal to '.$Array;
    $RootDomain = false;
}

使用していたポインタと配列の数が一致していませんでした。これが役立つはずです。整数の代わりに文字列もチェックしていました...

于 2013-02-22T21:51:40.503 に答える
1
$Array = count($paryDomain);
if ($Array == "1")
{
    $RootDomain = $paryDomain[0].'.'.$paryDomain[1];
} 

$Array要素が 1 つ含まれている場合$paryDomain[1]は存在しないか、配列に要素が 1 つだけ含まれている必要があります。

整数である $Array についてそれが言っている人のために:

$Array = 1;
var_dump(($Array == "1"));
var_dump(($Array == "2"));

bool(true) 

bool(false)

何が間違っているか: サーバー名がある場合 ((www.)?example.com):

if ($Array == "1")
{
    $RootDomain = $paryDomain[0].'.'.$paryDomain[1];
}    
elseif ($Array == "2")
{
    $RootDomain = $paryDomain[1].'.'.$paryDomain[2];
}

少なくとも 2 つの要素が含まれているため $paryDomain = explode(".",$Domain);、SERVER_NAME が 1 語の場合、$Array が 1 になることはありません。

解決:

if ($Array == "2")
{
    $RootDomain = $paryDomain[0].'.'.$paryDomain[1];
}    
elseif ($Array == "3")
{
    $RootDomain = $paryDomain[1].'.'.$paryDomain[2];
}else{

}

if ($RootDomain == "storeboard.com")
{
    $G_SYSTEMID = 1;
}
elseif ($RootDomain == "dcwn.org")
{
    $G_SYSTEMID = 2;
}else{
//in case when none of above cases true
    $G_SYSTEMID = 100;
} 
于 2013-02-22T21:53:42.377 に答える
-1
$G_SYSTEMID = strstr($_SERVER['SERVER_NAME'], 'storeboard.com') ? 1 : 2;
于 2013-02-22T21:53:42.240 に答える