Php 在if()语句中组合多个strpos()

Php 在if()语句中组合多个strpos(),php,if-statement,strpos,Php,If Statement,Strpos,我试图使添加的用户代理停留在页面上。如果未检测到用户代理,则重定向 此代码有效 $useragent=$\u服务器['HTTP\u用户\u代理]; if(strpos($useragent,“useragent”)==false){ 标题(“位置:http://google.com/"); } 所以我尝试像这样添加多用户代理,但没有成功 $useragent=$\u服务器['HTTP\u用户\u代理]; 如果( strpos($useragent,“agent1”)==false|| strp

我试图使添加的用户代理停留在页面上。如果未检测到用户代理,则重定向

此代码有效

$useragent=$\u服务器['HTTP\u用户\u代理];
if(strpos($useragent,“useragent”)==false){
标题(“位置:http://google.com/");
}
所以我尝试像这样添加多用户代理,但没有成功

$useragent=$\u服务器['HTTP\u用户\u代理];
如果(
strpos($useragent,“agent1”)==false||
strpos($useragent,“agent2”)==false||
strpos($useragent,“agent2”)==false
) {
标题(“位置:http://google.com/");
}
您可以使用

您可以使用


您可能需要一个比后续的
strpos()
更易于更新的代码。此外,您应该不敏感地搜索案例。在每个页面访问时启动PCRE引擎可能不是最佳选择

因此,我将保持
stripos()
方法如下:

<?php
$partial_allowed_UA_names = ['mozilla', 'chrome', 'safari']; # <----- Config here.
$go_away = true;
foreach ($partial_allowed_UA_names as $v) {
    if (stripos($_SERVER['HTTP_USER_AGENT'], $v) !== false) {
        $go_away = false;
        break;
    }
}
if ($go_away) header('Location: https://www.google.com/');
?>


致以最诚挚的问候

您可能需要一个比后续的
strpos()更新更简单的代码。此外,您应该不敏感地搜索案例。在每个页面访问时启动PCRE引擎可能不是最佳选择

因此,我将保持
stripos()
方法如下:

<?php
$partial_allowed_UA_names = ['mozilla', 'chrome', 'safari']; # <----- Config here.
$go_away = true;
foreach ($partial_allowed_UA_names as $v) {
    if (stripos($_SERVER['HTTP_USER_AGENT'], $v) !== false) {
        $go_away = false;
        break;
    }
}
if ($go_away) header('Location: https://www.google.com/');
?>


致以最诚挚的问候

您必须使用
&
而不是
|
。最好使用
&&
而不是
|
。最好的regardsWorks,但我希望它需要这样:如果列出了用户代理,请保持在页面上。如果您的用户代理未列出,请走开。有Eric代码,它是这样工作的。当在预定义列表中找不到用户代理时,它会重定向。很高兴听到这个消息。若你们不介意的话,请接受那个些对你们有帮助的答案。行得通,但我希望它像这样需要:若列出了用户代理,请保持在页面上。如果您的用户代理未列出,请走开。有Eric代码,它是这样工作的。当在预定义列表中找不到用户代理时,它会重定向。很高兴听到这个消息。如果你不介意,请接受对你有帮助的答案。