PHP字符串不包含

时间:2013-03-19 11:45:33

标签: php

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

我发现这是直截了当的:

$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”,其中没有“索引”或“/?”在链接中。

BTW我已经尝试了所有组合:!strpos,TRUE,!==,但它似乎对我不起作用。我需要一种在代码中没有“else”的方法,否则我可以改变回声。

4 个答案:

答案 0 :(得分:20)

$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

答案 1 :(得分: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 )

查看此页面以获取有关logical operators

的更多信息

答案 2 :(得分:2)

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

答案 3 :(得分:0)

试试这个:

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

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

{

echo"1";

}

else

{

echo"2";

}