fgetcsv

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 .

Anmerkung : 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 .

Anmerkung : 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

 
,

 
"

 
,")

 
)

 
{

 
/

 
/

 
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( ) .