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 に答える