如何在 PHP 中删除 CSV 文件中的空行?

我的 output.csv 文件有问题。这就是目前的样子。我可以创建一个经过修改的新 csv 文件,或者只是修改此 csv 文件,但不知道如何进行。


cn,mail,telephonenumber,uid

,,,

admin,,,

"Isaac Newton",newton@ldap.forumsys.com,,newton

"Albert Einstein",einstein@ldap.forumsys.com,314-159-2653,einstein

"Nikola Tesla",tesla@ldap.forumsys.com,,tesla

我希望输出是


cn,mail,telephonenumber,uid

admin,,,

"Isaac Newton",newton@ldap.forumsys.com,,newton

"Albert Einstein",einstein@ldap.forumsys.com,314-159-2653,einstein

"Nikola Tesla",tesla@ldap.forumsys.com,,tesla

如您所见,第二行已完全删除。我已经尝试了以下方法,但它不起作用

$lines = file("output.csv", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);

$num_rows = count($lines);

foreach ($lines as $line) {

    $csv = str_getcsv($line);

    if (count(array_filter($csv)) == 0) {

        $num_rows--;

    }

}

编辑:


这是我当前的 PHP


            $filename = "output.csv";

            header('Content-Type: text/csv');

            header('Content-Disposition: attachment; filename="' . $filename . '"');


            $file = fopen("ad.csv","r");


            while(! feof($file))

              {

              print_r(fgets($file));

              }

            fclose($file);

所以本质上,我有一个名为“ad.csv”的 csv 文件,其中包含我需要放入“output.csv”中的信息。我想知道如何编辑output.csv,以便在编辑删除空行后发送下载?


目前,Nigel 的代码附加在底部,它不会编辑输出的 csv 文件。


www说
浏览 197回答 1
1回答

守着星空守着你

如果您识别出空行,则可以从原始数组中的行中删除该行。然后将所有剩余的行放回到同一个文件中......$lines = file("output.csv", FILE_SKIP_EMPTY_LINES );$num_rows = count($lines);foreach ($lines as $lineNo => $line) {    $csv = str_getcsv($line);    if (count(array_filter($csv)) == 0) {        unset($lines[$lineNo]);    }}file_put_contents("output.csv", $lines);我已将其删除,FILE_IGNORE_NEW_LINES以便将新行保留在数组中。
打开App,查看更多内容
随时随地看视频慕课网APP