Wie ich in meinem Kommentar bemerkte. Das Hinzufügen einer Kopfzeile bedeutet, dass dies am Anfang einer CSV-Datei hinzugefügt wird. Dies muss nur einmal durchgeführt werden (d. H. Prüfen, ob eine Datei existiert und wenn nicht, zuerst den Header schreiben). Allerdings, wenn Sie bereits Dateien, die Sie einen Header voranstellen wollen Sie eine der folgenden Möglichkeiten:
Wenn Ihre Dateien klein sind, können Sie dies tun:
function prependHeader($headerDataArray) {
$currentData = file_get_contents("data.csv");
$handle = fopen("data.csv", 'w'); //Truncate it
fputcsv($handle, $headerDataArray);
fwrite($handle, $currentData);
fclose($handle);
}
Wenn Ihre Dateien zu groß sind Speicher im Speicher, dann müssen Sie im Grunde die gesamte Datei Zeile um Zeile neu schreiben und dann die alte Datei entfernen:
function prependHeader($headerDataArray) {
$readHandle = fopen("data.csv");
$writeHandle = fopen("newData.csv", 'w'); //Truncate it
fputcsv($writeHandle, $headerDataArray);
while (($line = fgetcsv($readHandle))) {
fputcsv($writeHandle,$line);
}
fclose($readHandle);
fclose($writeHandle);
unlink("data.csv");
rename("newData.csv", "data.csv");
}
Spaltennamen werden nur einmal hinzugefügt, so dass dies nicht ein geeigneter Ort wäre, sie hinzuzufügen, es sei denn Ich habe die Frage missverstanden. – apokryfos