繁体   English   中英

将数据数组保存到CSV文件

[英]Save data array to CSV file

我需要将数据数组保存到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);
}

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

$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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM