Arbeiten mit CSV in PHP: Die Bibliothek SplFileObject und integrierte Funktionen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist CSV und warum ist die Arbeit damit in PHP notwendig?

CSV (Comma-Separated Values) ist ein Format zur Speicherung von Tabellendaten, bei dem Zeilen durch Zeilenumbrüche und Spalten durch Kommas oder andere Trennzeichen getrennt werden. In PHP ist die Arbeit mit CSV für den Import/Export von Daten aus Excel, Google Sheets, CRM-Systemen sowie für die Verarbeitung von Logs und den Datenaustausch zwischen Diensten erforderlich. Die Standardbibliothek von PHP bietet leistungsstarke Werkzeuge zum Lesen und Schreiben von CSV ohne Installation zusätzlicher Module.

Grundlegende Funktionen für die Arbeit mit CSV

In PHP gibt es integrierte Funktionen: fgetcsv() – zum Lesen einer CSV-Zeile aus einer Datei, fputcsv() – zum Schreiben eines Arrays im CSV-Format, sowie die Klasse SplFileObject, die die Iteration über CSV-Dateien vereinfacht. Für die Arbeit im Speicher kann str_getcsv() verwendet werden, um eine Zeichenkette ohne Datei zu parsen.

Installation

Eine zusätzliche Installation ist nicht erforderlich, da die Funktionen Teil des PHP-Kerns sind. Für die Arbeit mit CSV reicht es aus, die Unterstützung für Dateioperationen zu aktivieren (normalerweise standardmäßig aktiviert).

Grundlegende Funktionen und ihre Anwendung

  • fgetcsv($handle, $length, $delimiter, $enclosure, $escape) – liest eine Zeile aus einer geöffneten Datei und gibt ein Array der Felder zurück.
  • fputcsv($handle, $fields, $delimiter, $enclosure, $escape) – schreibt ein Array als CSV-Zeile in eine Datei.
  • str_getcsv($input, $delimiter, $enclosure, $escape) – parst eine CSV-Zeichenkette ohne Datei.
  • SplFileObject::fgetcsv() – Methode zum Lesen von CSV im objektorientierten Stil.

PHP-Codebeispiel

<?php// CSV-Datei lesen$filename = 'data.csv';if (($handle = fopen($filename, 'r')) !== false) {    while (($data = fgetcsv($handle, 1000, ',')) !== false) {        echo 'Name: ' . $data[0] . ', E-Mail: ' . $data[1] . '<br>';    }    fclose($handle);}

// In CSV schreiben$list = [ ['Ivan', 'ivan@example.com'], ['Maria', 'maria@example.com']];$handle = fopen('output.csv', 'w');foreach ($list as $fields) { fputcsv($handle, $fields);}fclose($handle);

// Verwendung von SplFileObject$file = new SplFileObject('data.csv');$file->setFlags(SplFileObject::READ_CSV);foreach ($file as $row) { print_r($row);}?>

Wann verwenden

Die Bibliothek eignet sich für: den Import von Produkten aus Excel in einen Online-Shop, den Export von Berichten, die Verarbeitung von Kontakten aus CRM, das Laden von Daten aus Google Sheets über den CSV-Export sowie für die Datenmigration zwischen Systemen. Für große Dateien wird die Verwendung von Iteratoren SplFileObject oder das zeilenweise Lesen empfohlen, um Speicherüberläufe zu vermeiden.

Fazit

Die integrierten PHP-Werkzeuge für die Arbeit mit CSV sind eine zuverlässige und schnelle Lösung für die meisten Aufgaben. Sie erfordern keine Installation zusätzlicher Bibliotheken, unterstützen verschiedene Trennzeichen und Escape-Mechanismen und lassen sich leicht in Datenbanken und Webformulare integrieren. Wenn Sie CSV in PHP verarbeiten müssen, beginnen Sie mit fgetcsv() und fputcsv() – das ist der De-facto-Standard.

Empfehlungen