9

如果当前链接不包含“索引”或“/?”字样,我想要做的是显示一条消息 (1)

我发现这正好相反:

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

此代码在没有“索引”或“/?”的页面上显示“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";
}

1如果没有index.php/?应显示$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 回答
2
$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($page, '/?') === false && strpos($page, 'index.php') === false) 
{
  echo "1";
}
else
{
  echo "2";
}
于 2013-04-09T15:58:26.057 回答
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 回答