fgets 和 in_array 无法正常协同工作

fgets and in_array not working together correctly

我正在处理一个项目,其中过滤后的文本文件数据逐行导入到 SQL 数据库中。数据导入功能正常,但过滤功能不起作用。在故障排除中,我创建了以下代码以查看发生了什么。

$excludeLines = array("Doc #:", 'Title:');

$tempFile = "./temp/" . $_FILES["certFile"]["name"];
    if (move_uploaded_file($_FILES["certFile"]["tmp_name"],  $tempFile)) {
        $importData = fopen($tempFile, "r");
        while(($line=fgets($importData))!==false) {
            if(trim($line) != '' && $line != NULL) {
                if(in_array($line, $excludeLines)) {
                    echo 'Included: ';
                } else {
                    echo 'Not included: ';
                }
                echo $line . "<br>";
            } 
        }
        fclose($importData);
    }

结果是:不包括:文件#:

我想看的:包括:文件#:

如果有人能指出我正确的方向,将不胜感激。

fgets 包含行尾,因此您也需要将它们包含在查找数组中...

$excludeLines = array("Doc #:\n", "Title:\n"); // Assuming Unix-like line endings

...或者在匹配时去掉它们:

in_array(trim($line), $excludeLines)