2

我需要将数据数组保存到 CSV 文件。问题如下:当我打开 CSV 文件时,我看到数组的 0 行与标题保存在同一行。标题的最后一列也包含 0,即“www0”。如何避免这种情况?

        header("Content-type: text/csv");
        header("Pragma: no-cache");
        saveCSV($solutionCSV);

function saveCSV($data) {
    $outstream = fopen("schedule.csv", "a");

    $headers = 'xxx, yyy, zzz, www';
    fwrite($outstream,$headers);

    function __outputCSV(&$vals, $key, $filehandler) {
        fputcsv($filehandler, $vals);
    }
    array_walk($data, "__outputCSV", $outstream);
    fclose($outstream);
}
4

1 回答 1

1

标题后需要换行符。请注意从单引号到双引号的更改以启用转义。

$headers = "xxx, yyy, zzz, www\n";

如果这会使 Windows 出错,请使用\r\n

$headers = "xxx, yyy, zzz, www\r\n";

或者,您也可以依靠fputcsv编写标题。这可能是最安全的方法,因为它会产生一致的格式。

$headers = array('xxx', 'yyy', 'zzz', 'www');
fputcsv($outstream, $headers);
于 2012-05-28T21:09:49.550 回答