Why is this code using stripos() not working?
stripos() doesn't seem to be working like it should, here's my code:
$regex_blitz = array("#bols", "#Blitz", "#Blitz Ipva", "#detran", "#ipva", "biltz");
foreach($regex_blitz as $blitz)
{
    echo $blitz;
    echo "</br>";
    echo $string;
    echo "</br>";
    if(stripos($string, $blitz))
    {
        echo 'aqui';
        }
                else
        {
                echo 'oi';echo "</br>";
    }
}
here is the output:
#bols
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
#Blitz
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
#Blitz Ipva
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
#detran
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
#ipva
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
biltz
#Blitz av das americas sentido recreio, pista lateral. Em frente ao Ribalta!
oi
You can notice that when $blitz is '#Blitz' it was supposed to pass the 'if', help me !
ju开发者_Python百科st noticed that if I move "#blitz" forward in the string it works, but I can't do that since it searches automatically, is this a bug ?
The problem is that stripos returns 0, if the match is at the beginning of the string. You need to check it using !== false. http://php.net/manual/en/function.stripos.php
$regex_blitz = array("#bols", "#Blitz", "#Blitz Ipva", "#detran", "#ipva", "biltz");
foreach($regex_blitz as $blitz)
{
    echo $blitz;
    echo "</br>";
    echo $string;
    echo "</br>";
    if(stripos($string, $blitz) !== false)
    {
        echo 'aqui';
        }
                else
        {
                echo 'oi';echo "</br>";
    }
}
Someone oversaw big warning sign:
    Warning
This function may return Boolean FALSE, but may also return a non-Boolean value
which evaluates to FALSE, such as 0 or "".
http://php.net/stripos
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论