2016-08-22 80 views
0

我可以在结果中清楚地看到输出结果之一是“一般”。当我试图在我的“if语句”中过滤掉它时,它无法每次都抓住“一般”。我的“str_replace”是试图摆脱任何可能导致问题的空白空间的结果。为什么我的“if语句”参数没有正确过滤我的结果?

代码段:

$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($列表)'在每次迭代 –

+1

也许有在'$ list'换行。 – Barmar

+0

另外:只有38次迭代后,你才会开始检查'一般'。 –

回答

0

我怀疑$list之前或之后有换行符。请尝试:

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

删除文本周围的所有类型的空白以及文本中的任何HTML标记。

您也可以只用从标签文本:

$list = $info2->plaintext; 
+0

不幸的是,即使使用修剪也仍然存在 – Jb11281992

+0

尝试使用'echo htmlentities($ list)'来查看它究竟是什么。 – Barmar

+0

感谢您的帮助。使用$ list = strip_tags($ list)后,我终于找到了它的工作原理。 – Jb11281992

相关问题