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
$handle
[, int $length
= 0
[, string $delimiter
= ","
[, string $enclosure
= '"'
[, string $escape
= "\\"
]]]] ) : arrayDie 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.
Hinweis:
Die Spracheinstellung (locale) wird von dieser Funktion beachtet. Wenn LC_CTYPE z.B. den Wert en_US.UTF-8 hat, können Dateien in Ein-byte-Kodierung von dieser Funktion falsch gelesen werden.
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 (höchstens ein Zeichen). Eine leere Zeichenkette ("") deaktiviert den proprietären Maskierungsmechanismus. -
escape
-
Der optionale Parameter
escape
setzt das Maskierungs-Zeichen (nur ein Zeichen).Hinweis: Normalerweise wird ein
enclosure
Zeichen in einem Feld maskiert, indem es verdoppelt wird; allerdings kann dasescape
Zeichen alternativ dazu verwendet werden. So haben standardmäßig die Werte "" und \" die selbe Bedeutung. Außer der Möglichkeit, dasenclosure
Zeichen durch dasescape
Zeichen maskieren zu können, hat letzteres keine besondere Bedeutung; es ist nicht einmal dazu geeignet, sich selbst zu maskieren.
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.
Changelog
Version | Beschreibung |
---|---|
7.4.0 |
Der escape Parameter akzeptiert nun auch eine leere
Zeichenkette, um den proprietären Maskierungsmechanismus zu deaktivieren.
|
5.3.0 |
Der escape Parameter wurde ergänzt
|
5.1.0 |
Der Parameter length ist nun optional.
Standard ist 0, d.h. keine Längenbeschränkung.
|
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);
}
?>
Siehe auch
- str_getcsv() - Parst einen CSV-String in ein Array
- explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
- file() - Liest eine komplette Datei in ein Array
- pack() - Packt Daten in eine Binär-Zeichenkette
- fputcsv() - Format line as CSV and write to file pointer
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-function.fgetcsv.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.