2011-05-02 167 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>"; 
    } 
} 
相關問題