PHP Handbuch
Zurück |  | Nach vorne

# fgetcsv

(PHP 3>= 3.0.8, PHP 4 )

fgetcsv -- Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)

## Beschreibung

array fgetcsv ( int fp, int length [, string delimiter [, string enclosure]])

Die Funktion fgetcsv() ist ähnlich der Funktion fgets(), nur dass fgetcsv() die eingelesene Zeile auf Felder im CSV Format (kommaseparierte Felder) hin überprüft, und ein Array mit den gelesenen Feldern zurückgibt. Ist der optionale dritte Parameter `delimiter` (Trennzeichen) nicht angegeben, wird standardmäßig das Komma benutzt. Der optionale Parameter `enclosure` ist auf ein Zeichen limitiert und darf nicht null sein. Enthält `enclosure` mehr als ein Zeichen, wird nur das erste verwendet.

> Anmerkung: Der Parameter `enclosure` wurde in PHP 4.3.0 eingeführt.

Der Dateizeiger `fp` muss gültig sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen() oder fsockopen() geöffnet worden sein.

`Length` muss größer sein als die längste in der CSV-Datei vorhandene Zeile (um das Erkennen von EndOfLine (Ende der Zeile) Zeichen zu ermöglichen).

fgetcsv() gibt bei Lesefehlern und am Dateiende `FALSE` zurück.

> Anmerkung: Eine leere Zeile der CSV-Datei wird als Array mit einem Feld das den Wert `NULL` hält zurückgegeben. Sie wird nicht als Fehler behandelt.

Beispiel 1. Lesen und Ausgeben des gesamten Inhalts einer CSV-Datei

    <?php
    $row = 1;                                  // Anzahl der Arrays
    $fp = fopen ("test.csv","r");              // Datei wird zum Lesen geöffnet
    while ($data = fgetcsv ($fp, 1000, ",")) { // Daten werden aus der Datei in
                                               // ein Array $data gelesen
        $num = count ($data);                  // Felder im Array $data werden
                                               // gezählt
        print "<p> $num fields in line $row: <br>\n";
        $row++;                                // Anzahl der Arrays wird
                                               // inkrementiert
        for ($c=0; $c < $num; $c++) {          // FOR-Schleife, um Felder
            print $data[$c] . "<br>\n";        // des Arrays auszugeben
        }
    }
    fclose ($fp);
    ?>

Siehe auch explode(), file() und pack().

Zurück | Zum Anfang | Nach vorne
fgetc | Nach oben | fgets