PHP字符串不包含

PHP字符串不包含,php,Php,如果当前链接不包含单词“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”或“/”,我试图做的是显示一条消息(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,真的,但这似乎对我不起作用。我需要一种在代码中没有“else”的方法,否则我可以改变回声

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

如果在
$page

中没有
index.php
/?
,则应显示
1
,if语句中的条件为

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

查看此页面了解有关的详细信息。

尝试以下操作:

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

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

{

echo"1";

}

else

{

echo"2";

}

布尔比较
xor
应该这样做。try===false | |===false{one or two missing}@Waygood我假设url是
/index.php
/?
不包含两者,因此如果url是
/index.php
,那么
strops($page,“/?”)
将返回false,并返回1,如果url是
/?
,则
strpos($page,'index.php')
将返回false,1将返回,如果url不包含这两个语句,则两个语句都将返回false,1将返回,因此如果使用OR,则代码将始终返回1,除非url是
index.php/?
?xor=“一个或另一个,但不是两个”我个人更喜欢
stristr()而不是
strpos()因为不需要担心===falseabout@Waygood这只是原始条件下的德摩根定律。+1用于解释异或,也用于上述关于德摩根定律的评论;-)是的,但我需要一个没有别的解决方案。您的解决方案则相反:“如果索引位于链接中,请执行此操作”。我需要“如果索引不在链接中,请执行此操作”。
$page = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

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

{

echo"1";

}

else

{

echo"2";

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