Jetzt anmelden...

Name
Passwort
Registrieren

PHP Blog

CSV-Dateien mit PHP erstellen

Mit der PHP-Funktion fputcsv lassen sich sehr einfach Daten in einer CSV-Datei speichern. Praktisch: Die Funktion erstellt die CSV-Datei gleich mit. Wir zeigen Ihnen hier, wie Sie fputcsv in PHP einsetzen.

Kommentare [0]

Stefan 03.01.2019

Infos zum Artikel

Kategorie Java
Autor Stefan
Datum 03.02.2019

Schnelles Code-Beispiel:

<?php

$daten = array('Wert1', 'Wert2', 'Wert3', 'Wert4', 'Wert5');
$fp = fopen('daten.csv', 'a');
fputcsv($fp, $daten);
fclose($fp);

?>

Was sind CSV-Dateien überhaupt?

CSV steht für Comma-separated values, also "durch Kommata getrennte Werte". CSV-Dateien sind Textdateien, in denen Tabellen abgebildet werden. Besonders häufig werden CSV-Dateien in Tabellenkalukations-Anwendung für den Datenimport bzw. -export eingesetzt.

Tutorial

Sehen wir uns zunächst noch einmal das Code-Beispiel von oben an: .

<?php

$daten = array('Wert1', 'Wert2', 'Wert3', 'Wert4', 'Wert5');
$fp = fopen('daten.csv', 'a');
fputcsv($fp, $daten);
fclose($fp);

?>

Als erstes suchen wir uns in PHP die Daten heraus, die wir in die CSV-Datei schreiben wollen. Genauer gesagt: Wir legen uns ein Array mit Daten zurecht ($daten).

Jetzt öffnen wir mithilfe der Funktion fopen einen Stream zur CSV-Datei, die wir erstellen wollen, und speichern das in einer Variablen ($fp). fopen benötigt zwei Parameter: Der erste Parameter verlangt den Dateinamen der CSV-Datei. Der zweite Parameter beschreibt den Zugriffstyp des Streams. Setzen wir "w" ein, heißt das, dass falls die Datei schon exisitiert, der Inhalt überschreiben wird. Wollen wir aber Daten ans Ende einer schon bestehenden CSV-Datei anhängen, sollten wir "a" als Argument übergeben. In beiden Fällen wird die Datei neu erstellt, wenn sie noch nicht exisitiert.

Jetzt starten wir fputcsv und übergeben der Funktion den Stream ($fp) und das Array ($daten). Damit schreiben wir eine Zeile in der CSV-Datei.

Am Ende schließen wir mit fclose den Stream wieder.

Beim Ausführen des Programms erhalten wir die gewünschte Datei daten.csv mit folgendem Inhalt:

Wert1,Wert2,Wert3,Wert4,Wert5

Mehrere Datenreihen

Eine einzelne Zeile zu erzeugen ist meist aber nicht genug. Um mehre Datenreihen bzw. Zeilen in der CSV-Datei zu speichern, benötigen wir mehrere Arrays. Jedes Array wird einmal mit fputcsv ausgeführt:

<?php

$daten = array(
    array('aaa', 'bbb', 'ccc', 'ddd', 'eee'),
    array('111', '222', '333', '444', '555'),
    array('AAA', 'BBB', 'CCC', 'DDD', 'EEE')
);

$fp = fopen('daten.csv', 'a');

foreach($daten as $arrays){
    fputcsv($fp, $arrays);
}

fclose($fp);

?>

Wir haben die Daten in einem zweidimensionalen Array angeordnet und lassen die einzelnen Arrays in einer foreach-Schleife mit der Funktion fputcsv durchlaufen.

So erhalten wir in der CSV-Datei folgenden Inhalt:

aaa,bbb,ccc,ddd,eee
111,222,333,444,555
AAA,BBB,CCC,DDD,EEE

Zugriffsrechte richtig auswählen

Unter Umständen erhalten Sie beim Starten folgende Fehlermeldung: Warning: fopen(daten.csv): failed to open stream: Permission denied in....

Das heißt, dass der Schreibzugriff verweigert wurde. Wenn das der Fall ist, müssen Sie die Zugriffsrechte des Ordners/ Verzeichnisses, in dem die CSV-Datei geschrieben wird, anpassen:

Bei Mac: Rechtsklick auf den Ordner > Informationen > Zugriffsrechte (unten) > Lesen & Schreiben für alle

Bei Windows: Rechtsklick auf den Ordner > Properties > Security

Kommentar schreiben

Nur angemeldete Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Verzweigungen

Ohne Verzweigungen wäre kaum ein sinnvolles Programm möglich.

PHP einrichten

Erfahren Sie, wie einfach es ist, PHP auf unserem lokalen System startklar zu machen.

Arrays in PHP

Arrays ermöglichen das Speichern von Daten in einer übergeordneten Datenstruktur.

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen