[英]How to remove empty lines from CSV file in PHP?
我的 output.csv 文件有問題。 這就是它目前的樣子。 我可以創建一個已修改的新 csv 文件或僅修改此 csv 文件,但不確定如何處理 go。
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
我希望 output 成為
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
如您所見,第二行已完全刪除。 我嘗試了以下方法,但它不起作用(這是從php 中的 CSV 文件中刪除空白行)
$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 文件。
如果當您確定一個空行時,您可以從原始數組中的行中刪除該行。 然后將所有剩余的行放回同一個文件中......
$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
以便將新行保留在數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.