Function.fgetcsv
Aus PHP-Wiki
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
[, 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.
Hinweis:
Der Parameter enclosure
wurde in PHP 4.3.0
eingeführt.
Der Parameter handle
muss ein gültiger
Dateizeiger 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.
Hinweis:
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
$handle = fopen ("test.csv","r"); // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) { // 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 ($handle);
?>
Siehe auch explode(), file()
und pack().