我想要做的是显示一条消息(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”的方法,否则我可以改变回声。
答案 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";
}