在PHP中使用stripos函数,但与变量发生冲突


Using stripos function in PHP but having conflict with variable

我正试图用PHP中的函数stripos来解决一个问题。我们正在做促销代码,例如,一个促销代码是"朋友",另一个是"朋友40",当有人输入时,它说这两个都是真的,所以会给他们双倍的折扣。

我们需要这些区别,但不区分大小写。有没有一种技术或其他功能我们可以使用?

if (stripos($promo,'friends') !== false) {   
$price = $price/2;
$adddiscount = .50;
}
if (stripos($promo,'FRIENDS40') !== false) {   
$price = $price - $price * .4;
$adddiscount = .4;
}

两者都将进行验证,因为stripos不区分大小写并且friends可以在FRIENDS40中找到。您需要先进行FRIENDS40检查,然后进行friends

<?php
if(stripos($promo,'FRIENDS40') !== false) {   
    $price = $price - $price * .4;
    $adddiscount = .4;
}elseif(stripos($promo,'friends') !== false) {   
    $price = $price/2;
    $adddiscount = .50;
}

另一种选择是使用strpos(),IS区分大小写:

<?php
if(strpos($promo,'FRIENDS40') !== false) {   
    $price = $price - $price * .4;
    $adddiscount = .4;
}
if(strpos($promo,'friends') !== false) {   
    $price = $price/2;
    $adddiscount = .50;
}

为了安全起见,我建议使用第一种方法。