PHP Portal » PHP Handbuch » fgetcsv

Werbung

fgetcsv


(PHP 4, PHP 5)

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.

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$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: \n"; $row++; // Anzahl der Arrays wird // inkrementiert for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder print $data[$c] . "\n"; // des Arrays auszugeben } } fclose($handle);

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