9

私がやろうとしているのは、現在のリンクに「index」または「/?」という単語が含まれていない場合にメッセージ (1) を表示することです。

私はこれが正反対のことをすることを発見しました:

$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($page, 'index.php') !== false xor strpos($page, '/?') !== false) {
    echo '1';
} else {
    echo '2';
}

このコードは、「index」または「/?」がないページに「2」を表示します。リンクでは、しかし私は反対が必要です: 「インデックス」または「/?」がない場所に「1」を表示します。リンクで。

ところで、!strpos、TRUE、!== のすべての組み合わせを試しましたが、うまくいかないようです。コードに「else」がない方法が必要です。それ以外の場合は、エコーを変更するだけです。

4

4 に答える 4

21
$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($page, 'index.php') === false && strpos($page, '/?') === false) 
{
    echo"1";
}
else
{
    echo"2";
}

1noindex.phpまたは/?inの場合に表示する必要があります$page

于 2013-03-19T11:48:56.480 に答える
2

あなたのif文の条件は

if( <<COND 1>> xor <<COND 2>> )

xor特徴は

TRUEまたは のいずれ<<COND 1>>かである場合に返します<<COND 2>>TRUE、両方ではない場合に返します。

代わりにこれを使用する必要があります。

if( strpos($page, 'index.php') !== false OR strpos($page, '/?') !== false )

論理演算子の詳細については、このページを確認してください。

于 2013-03-19T11:51:46.990 に答える
0

これを試して :

$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

if (strpos($page, 'index.php') === false || strpos($page, '/?') === false) 

{

echo"1";

}

else

{

echo"2";

}
于 2013-03-19T11:52:01.897 に答える