如果用户在两个页面中的一个页面上,我试图让某些东西得到回应,但它没有被回应
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || ($_SERVER['REQUEST_URI'], 'message.php')) {
echo 'hello';
}
答案 0 :(得分:1)
首先,$_SERVER['REQUEST_URI']
将为您提供为访问此页面而提供的URI,而不是实际的页面名称。使用basename($_SERVER['PHP_SELF'])
获取实际的页面名称。
第二,你的if
条款的条件也是错误的。来自the manual of stripos()
function:
返回针相对于haystack字符串的beginnning存在的位置(与offset无关)。 另请注意,字符串位置从0开始,而不是1 。
如果未找到针,则返回FALSE。
因此,如果针与干草堆完全匹配,则两个条件都将失败。而是检查这样的条件:
if(stripos($haystack, $needle) !== false || stripos(stripos($haystack, $needle)) !== false) {
echo 'hello';
}
所以解决方案是这样的:
if(stripos(basename($_SERVER['PHP_SELF']), 'user.php') !== false || stripos(basename($_SERVER['PHP_SELF']), 'message.php') !== false) {
echo 'hello';
}
答案 1 :(得分:0)
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || stripos($_SERVER['REQUEST_URI'], 'message.php')) {
echo 'hello';
}
注意||。
之后的子句中的stripos函数答案 2 :(得分:0)
用括号将每个条件参数包装在自己的块中。添加到条件中的每个函数都必须包含2个括号。
IF ( ($a == $x) or ($b == $y) ) {}
if (
(stripos($_SERVER['REQUEST_URI'], 'user.php')) ||
(stripos($_SERVER['REQUEST_URI'], 'message.php'))
) {
echo 'hello';
}