通过 PHP / Laravel 和 re-save 编辑现有导出的 csv 文件

Edit an existing exported csv file via PHP / Laravel and re-save

我正在使用 Laravel-Excel 导出包含 header 和页脚行的 CSV 文件。 header 和页脚行只有 2-3 列,但是 body 行有多个额外的列 - 导致在 header 和页脚的末尾有额外的尾随逗号。

由于 Laravel-Excel 包无法删除这些额外的逗号,我需要在导出文件后通过代码以某种方式打开它,从 header 和页脚中删除尾随的逗号行,然后 re-save 文件,让我的用户下载最终结果。

所以我要找的是:

实际:

Header,20211021,065529,,,,,,,,,,,,,,,,,,,,,,
Footer,49,,,,,,,,,,,,,,,,,,,,,,,

必填:

Header,20211021,065529
Footer,49

所以流程如下:

  1. 使用 Laravel-Excel
  2. 生成导出文件
  3. 将生成的文件保存到服务器
  4. 打开生成的文件,确定最后一行
  5. 删除第 1 行的结尾逗号 (header)
  6. 删除最后一行(页脚)的结尾逗号
  7. Overwrite/save 现有的 csv 文件

任何关于我如何处理这件事的帮助都会非常有帮助!

我认为最简单的方法是使用简单的 php。通过 rtrim 很容易做到这一点:

$contents = file('file.csv');
foreach ($contents as &$line) {
    $line = rtrim($line, ",\r\n");
}
file_put_contents('file.csv', implode("\n", $contents));