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 = "\"
]]]] )
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). Andernfalls wird die Zeile in Blöcke von
length Zeichen aufgeteilt, es sei denn, die
Aufteilung würde innerhalb einer Feldbegrenzung erfolgen.
Wird dieser
Paramter ausgelassen (oder in PHP 5.1.0 und später auf 0 gesetzt),
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
Fehlern einschließlich Dateiende.
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($handle, 1000, ",")) !== 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
- str_getcsv
- explode
- file
- pack
- fputcsv