Dateisystem
PHP Manual

fgetcsv

(PHP 4, PHP 5, PHP 7)

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

Beschreibung

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

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.

Parameter-Liste

handle

Ein gültiger Dateizeiger auf eine Datei, die zuvor mit fopen(), popen() oder fsockopen() geöffnet wurde.

length

Muss größer als die längste Zeile (in Zeichen), die in der CSV Datei vorhanden ist, sein (dies erlaubt die Erkennung abschließender Zeilenende Zeichen). Sie wurde in PHP 5.0 optional. Wird dieser Paramter ausgelassen (oder in auf 0 setzen in PHP 5.1.0 und später), ist die maximale Zeilenlänge nicht begrenzt, was ein wenig langsamer ist.

delimiter

Der optionale Parameter delimiter setzt das Feld-Trennzeichen (nur ein Zeichen).

enclosure

Der optionale Parameter enclosure setzt das Feld-Begrenzungs Zeichen (nur ein Zeichen).

escape

Der optionale Parameter escape setzt das Maskierungs-Zeichen (nur ein Zeichen).

Rückgabewerte

Gibt ein numerisch indexiertes Array zurück, das die gelesenen Felder enthält.

Hinweis:

Ein leere Zeile in einer CSV Datei wird als ein Array zurückgegeben, das ein einzelnes null Feld enthält und wird nicht als Fehler behandelt.

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

fgetcsv() gibt NULL zurück, wenn ein ungültiger handle übergeben wurde oder FALSE bei anderen fehler einschließlich Dateiende.

Changelog

Version Beschreibung
5.3.0 Der escape Parameter wurde ergänzt
5.1.0 Der Parameter length is nun optional. Standard ist 0, d.h. keine Längenbeschränkung.
4.3.5 fgetcsv() ist nun "binary safe"

Beispiele

Beispiel #1 Lies und gib den gesamten Inhalt einer CSV Datei aus

<?php
$row 
1;
if ((
$handle fopen("test.csv""r")) !== FALSE) {
    while ((
$data fgetcsv($handle1000",")) !== FALSE) {
        
$num count($data);
        echo 
"<p> $num Felder in Zeile $row: <br /></p>\n";
        
$row++;
        for (
$c=0$c $num$c++) {
            echo 
$data[$c] . "<br />\n";
        }
    }
    
fclose($handle);
}
?>

Anmerkungen

Hinweis:

Die Spracheinstellung (locale) wird von dieser Funktion beachtet. Wenn LANG z.B. den Wert en_US.UTF-8 hat, werden Dateien in Ein-byte-Kodierung von dieser Funktion falsch gelesen.

Siehe auch


Dateisystem
PHP Manual