(PHP 5 >= 5.1.0, PHP 7)
SplFileObject::fgetcsv — Obtiene la línea del archivo y analiza como campos CSV
$delimiter
= ","
[, string $enclosure
= "\""
[, string $escape
= "\\"
]]] ) : arrayObtiene una línea del archivo que está en formato CSV y devuelve un array que contiene los campos leídos.
Nota:
Esta función tiene en cuenta los ajustes de localización. Si LC_CTYPE es p.e. en_US.UTF-8, los archivos en codificaciones de un byte pueden ser leídos erróneamente por esta función.
delimiter
El delimitador de campo (un solo carácter). El valor por defecto es una coma o el valor establecido usando SplFileObject::setCsvControl().
enclosure
El carácter circundante de cada campo (sólo un carácter). Por omisión, son comillas dobles o el valor establecido por SplFileObject::setCsvControl().
escape
El carácter de escape (a lo sumo un carácter). Por defecto es una barra invertida (\) o el valor establecido usando SplFileObject::setCsvControl(). Un string vacío ("") desactiva el mecanismo de escape propio.
Nota: Normalmente un carácter
enclosure
se escapa dentro de un campo duplicándolo; sin embargo, el carácterescape
puede ser usado como una alternativa. Así que para los valores de parámetros por defecto "" y \" tienen el mismo significado. Aparte de permitir espacar el carácterenclosure
el carácterescape
no tiene un significado especial; ni siquiera está destinado a escapar de sí mismo.
Devuelve un array indexado que contiene los campos que se leen, o FALSE
en caso de error.
Nota:
Una línea en blanco en un archivo CSV será devuelto como un array que comprende un único
NULL
a menos que se utiliceSplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE
, en cuyo caso se saltan las líneas vacías.
Versión | Descripción |
---|---|
7.4.0 |
El parámetro escape ahora también acepta un
string vacío para desactivar el mecanismo de escape propio.
|
Ejemplo #1 Ejemplo de SplFileObject::fgetcsv()
<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
var_dump($file->fgetcsv());
}
?>
Ejemplo #2 Ejemplo de SplFileObject::READ_CSV
<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
list($animal, $class, $legs) = $row;
printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>
El contenido de animals.csv
crocodile,reptile,4 dolphin,mammal,0 duck,bird,2 koala,mammal,4 salmon,fish,0
El resultado del ejemplo sería algo similar a:
A crocodile is a reptile with 4 legs A dolphin is a mammal with 0 legs A duck is a bird with 2 legs A koala is a mammal with 4 legs A salmon is a fish with 0 legs