2011-05-02 5 views
0

strpos() ne semble pas fonctionner comme il se doit, voici mon code:Pourquoi ce code utilisant stripos() ne fonctionne-t-il pas?

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

ici est la sortie:

#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 

Vous pouvez remarquer que lorsque $ blitz est « #Blitz 'c'était supposé passer le' si ', aide moi! Je viens de remarquer que si je déplace "#blitz" en avant dans la chaîne, cela fonctionne, mais je ne peux pas le faire car il recherche automatiquement, est-ce un bug?

Répondre

2

Quelqu'un a supervisé grand panneau d'avertissement:

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

Le problème est que stripos retourne 0, si le match est au début de la chaîne. Vous devez le vérifier en utilisant !== 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>"; 
    } 
} 
Questions connexes