为什么我的“if”语句是“;参数没有正确过滤我的结果


Why are my "if statement" parameters not filtering my results properly?

我可以在我的结果中清楚地看到其中一个输出结果是"general"。当我试图在"if语句"中过滤掉它时,它每次都不能捕获"一般"。我的"str_replace"是试图消除任何可能导致问题的空白空格的结果。

代码片段:

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

我怀疑$list在它之前或之后有换行符。试一试:

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

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

你也可以只从标签中获取文本:

$list = $info2->plaintext;