2016-03-29 5 views
0

Ich bin neu in PHP. Ich versuche, Daten zu CSV-Datei hinzuzufügen, wann immer sich eine Person anmeldet. Ich möchte fragen, gibt es eine Möglichkeit, Spaltennamen hinzuzufügen?Hinzufügen von Spaltennamen zu CSV-Datei über PHP

Das ist mein PHP-Code:

$handle = fopen("data.csv", 'a'); 

fwrite($handle, $doi. ", " .$per_add. ", " .$pre_add."\n"); 

fclose($handle); 

header("Location: thankyou.html"); 
exit; 
+0

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

Antwort

-1

Die Spaltennamen nur die erste Zeile der CSV sind. Sie prüfen also, ob die Datei existiert (und nicht leer ist). Wenn es nicht existiert, erstellen Sie es mit den Spaltennamen als erste Zeile.

+0

Schade, dass das abgelehnt wurde. Ich versuchte, den Typ zu angeln, anstatt ihm den Fisch auf einer Platte zu geben. –

0

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"); 
} 
Verwandte Themen