2016-08-22 2 views
0

Ich kann deutlich in meinen Ergebnissen sehen, dass eines der Ausgabeergebnisse "allgemein" ist. Wenn ich versuche, dies in meiner "if-Anweisung" herauszufiltern, kann es das "allgemeine" nicht jedes Mal abfangen. Mein "str_replace" ist ein Versuch, die Ergebnisse von leeren Leerstellen, die das Problem verursachen könnten, zu entfernen.Warum filtern meine "if-Statement" -Parameter meine Ergebnisse nicht richtig?

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 ($ list)' auf jeder Iteration –

+1

Vielleicht gibt es neue Zeilen in '$ list'. – Barmar

+0

Auch: Erst nach 38 Iterationen beginnen Sie, nach "allgemein" zu suchen. –

Antwort

0

Ich vermute $list hat Zeilenumbrüche vor oder nach ihm. Versuchen Sie:

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

, um alle Arten von Leerzeichen um den Text und alle HTML-Tags im Text zu entfernen.

Sie können auch mit nur den Text aus dem Tag erhalten:

$list = $info2->plaintext; 
+0

Leider bleibt es auch mit dem Trim – Jb11281992

+0

bestehen Versuchen Sie 'echo htmlentities ($ list)', um genau zu sehen, was darin ist. – Barmar

+0

Danke für die Hilfe. Ich habe es endlich funktioniert, nachdem ich $ list = strip_tags ($ list) benutzt habe; – Jb11281992

Verwandte Themen