PHP fputcsv 不需要的附加最后一行

PHP fputcsv unwanted additional last line

我有以下代码将数组结果导出到 PHP 中的 csv:

$file = fopen('php://output', 'w');

    $firstLineKeys = false;
    foreach ($result as $line) {
        if (empty($firstLineKeys))
        {
            $firstLineKeys = array_keys($line);
            fputcsv($file, $firstLineKeys);
            $firstLineKeys = array_flip($firstLineKeys);
        }
        fputcsv($file, $line, ',');
    }

    fclose($file);

但是,我得到的 csv 文件的最后一行是 "Headers Sent",这使得文件最后有点难看。

如何删除最后一行或不显示消息 "Headers Sent"?

必须添加 exit();在末尾。这删除了包含 "Headers Sent" 文本的最后一行。

解决方法如下:

$file = fopen('php://output', 'w');

$firstLineKeys = false;
foreach ($result as $line) {
    if (empty($firstLineKeys))
    {
        $firstLineKeys = array_keys($line);
        fputcsv($file, $firstLineKeys);
        $firstLineKeys = array_flip($firstLineKeys);
    }
    fputcsv($file, $line, ',');
}

fclose($file);
exit();