如何修复空白输出?PHP脚本

如何修复空白输出?PHP脚本,php,arrays,input,output,Php,Arrays,Input,Output,解决了这个问题: 我所需要做的就是在fgetcsv中添加一个分隔符 while(false!=($data=fgetcsv($ih,10000,;))) 我们从供应商那里收到一份文件。该文件有60k行,我们需要以某种方式自动筛选该文件 csv文件有3列:SKU、类别、价格。 我用excel筛选了这个文件,我发现我们只需要从这个文件中筛选出700个产品。它们都具有相同的“喷油器”类别 我已经写了一个php脚本,但它给了我一个空白输出。有人能解释一下我的代码有什么问题吗 <?php heade

解决了这个问题: 我所需要做的就是在fgetcsv中添加一个分隔符
while(false!=($data=fgetcsv($ih,10000,;)))

我们从供应商那里收到一份文件。该文件有60k行,我们需要以某种方式自动筛选该文件

csv文件有3列:SKU、类别、价格。 我用excel筛选了这个文件,我发现我们只需要从这个文件中筛选出700个产品。它们都具有相同的“喷油器”类别

我已经写了一个php脚本,但它给了我一个空白输出。有人能解释一下我的代码有什么问题吗

<?php header('Content-type: text/plain; charset=utf-8'); 
$input = 'C:\Users\Administrator\Desktop\Data.csv';
$output = 'C:\Users\Administrator\Desktop\Data_changed.csv';
$myfile = fopen("C:\Users\Administrator\Desktop\data_log.txt", "w") or die("Something wrong with this file.");
$vname='The process was successful: '.date('Y-m-d').' day';
fwrite($myfile, $vname);
fclose($myfile);
$injector = "Injector";
if (false !== ($ih = fopen($input, 'r'))) {
    $oh = fopen($output, 'w');

    while (false !== ($data = fgetcsv($ih))) {

if (strpos($data[1], $injector) !== false) {

        // this is where you build your new row
        $outputData = array($data[0], $data[1], $data[2]);
        fputcsv($oh, $outputData);


    }
    }

    fclose($ih);
    fclose($oh);
}
?>

预期产量为700个过滤产品

以下是csv文件的外观:

基本上,我想做的是制作一个脚本,在第二列中查找包含文本“Injector”的所有行


还要提到的是:原始文件带有分号作为分隔符。
windows的默认分隔符是逗号。

如果在Excel中打开文件,请确保.csv是逗号分隔的,而不是分号分隔的


编辑:您可以通过在文本编辑器(如notepad/notepad++)中打开文件来检查此问题。

“excel文件”-您是指csv文件,还是有实际的excel文件?@MagnusEriksson,是的,csvfile@Sigitas你的“是”回答了哪个问题?它是csv还是Excel?@user2342558-我的第一个问题是,它们是指csv文件吗。我想他们的回答是,在我编辑评论的同时加入了“或…”,所以我很确定他们的意思是肯定的。我的坏…你也应该编辑你的问题,包括一些来自csv的样本数据,因为我们不知道它看起来像什么。您还应该澄清您想要过滤它的条件。基本上,您是在要求我们帮助您使用一些未知条件筛选一些未知数据。包括您所做的调试和您的结论。原始文件带有分号作为分隔符。窗口的默认分隔符是逗号。也许这是个问题?因为“display\u error on”不显示任何问题。是的,这将导致整行放入
$data[0]
。您可以将分隔符作为第三个参数传递到
fgetcsv