2011-05-02 130 views
0

stripos函数()似乎并不奏效像它应该,这里是我的代码:为什么此代码使用stripos()不起作用?

$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>"; 
    } 
} 

这里输出:

#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 

你可以注意到,当$热捧为“#Blitz '它应该通过'如果',帮助我!

刚刚注意到,如果我在字符串中向前移动“#blitz”,但是我无法这么做,因为它会自动搜索,这是一个错误吗?

回答

2

有人监督大警示牌:

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

4

的问题是,stripos函数返回0,如果比赛是在字符串的开头。您需要使用!== 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>"; 
    } 
} 
相关问题