Php 在不进行区分大小写检查的情况下比较字符串

Php 在不进行区分大小写检查的情况下比较字符串,php,Php,我试图比较我的字符串,如下所示 $recieved = "SR1"; if ($recieved == "SR1" || $recieved == "SR2"|| $recieved == "SR3"|| $recieved == "SR4"){ echo "matching"; } else{ echo "not matching"; } 这很好,但我想忽略下面的区分大小写检查 sr1 Sr1 sR1 我不知道如何实现这一点?因此,您可以通过使用strtoupper函数来实

我试图比较我的字符串,如下所示

$recieved = "SR1";
if ($recieved == "SR1" || $recieved == "SR2"|| $recieved == "SR3"|| $recieved == "SR4"){
    echo "matching";
}
else{
    echo "not matching";
}
这很好,但我想忽略下面的区分大小写检查

sr1
Sr1
sR1

我不知道如何实现这一点?

因此,您可以通过使用strtoupper函数来实现这一点,同时,我建议在数组中使用如下方式:

$recieved = "SR1";
if (in_array(strtoupper($recieved), ['SR1', 'SR2', 'SR3', 'SR4'])) {
    echo "matching";
} else {
    echo "not matching";
}

我希望这对您很有用。

因此,您可以通过使用strtoupper函数来实现这一点,同时,我建议您在\u数组中使用如下方法:

$recieved = "SR1";
if (in_array(strtoupper($recieved), ['SR1', 'SR2', 'SR3', 'SR4'])) {
    echo "matching";
} else {
    echo "not matching";
}
我希望这对您很有用。

我们可以尝试在不区分大小写的模式下使用preg\u match:

$received = "sR1";
if (preg_match("/sr1/i", $received, $matches)) {
    echo "match";
}
如果您可能需要匹配sR1、sR1等,那么这种方法也是一个很好的起点,因为它出现在一个更大的字符串中。在这种情况下,我们可以尝试在不区分大小写模式下使用preg\u match搜索\bsr1\b。

我们可以尝试在不区分大小写模式下使用preg\u match:

$received = "sR1";
if (preg_match("/sr1/i", $received, $matches)) {
    echo "match";
}

如果您可能需要匹配sR1、sR1等,那么这种方法也是一个很好的起点,因为它出现在一个更大的字符串中。在这种情况下,我们可以尝试在不区分大小写的模式下使用preg_match搜索\bsr1\b。

mb_strotupper在大多数情况下会更安全。mb_strotupper在大多数情况下会更安全。对于这样一个简单的任务,Regex有点过分了。我不确定这是完全正确的解决方案。您所看到的边缘案例与OP的问题陈述相去甚远。它是一个什么样的边缘案例?如果用例是SR和任何数字,我认为正则表达式可能是一个更好的方法。不需要定义所有可能的整数。不过,我可能想添加锚。对于这样一个简单的任务,正则表达式有点过头了。我不确定这是否是完全正确的解决方案。您所看到的边缘案例与OP的问题陈述相去甚远。它是一个什么样的边缘案例?如果用例是SR和任何数字,我认为正则表达式可能是一个更好的方法。不需要定义所有可能的整数。但可能需要添加锚。