2016-08-22 1 views
0

Je peux clairement voir dans mes résultats que l'un des résultats de sortie est "général". Lorsque j'essaie de filtrer cela dans mon "if", il ne parvient pas à attraper le "général" à chaque fois. Mon "str_replace" est une tentative de débarrasser les résultats de tout espace blanc vide qui pourrait causer le problème.Pourquoi mes paramètres "if statement" ne filtrent pas correctement mes résultats?

Code Snippet:

$tick = 0; 
foreach($html->find('select.js-career-select') as $info) { 

foreach($info->find('option') as $info2) { 
    ++$tick; 
    $general = 'general'; 

    if($tick > 38) { 

     $list = $info2; 
     $list = strtolower(str_replace(' ', '', $list)); 

     if($list != $general) { 
      echo $list."<br>"; 
     } 
     else { 
      echo "NOPE!"; 
     } 
     } 
    } 
} 
+0

'var_dump (liste $)' à chaque itération –

+1

Peut-être il y a des sauts de ligne dans 'list' de $. – Barmar

+0

Aussi: Seulement après 38 itérations, vous commencerez à vérifier 'général'. –

Répondre

0

Je soupçonne que $list a des sauts de ligne avant ou après. Essayez:

$list = strtolower(trim(strip_tags($list))); 

Pour supprimer tous les espaces entourant le texte et les balises HTML dans le texte.

Vous pouvez également obtenir que le texte de l'étiquette avec:

$list = $info2->plaintext; 
+0

Malheureusement, il persiste même avec le trim – Jb11281992

+0

Essayez 'echo htmlentities ($ list)' pour voir exactement ce qu'il contient. – Barmar

+0

Merci pour l'aide. J'ai finalement réussi à l'utiliser après avoir utilisé $ list = strip_tags ($ list); – Jb11281992