SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fgetcsvObtiene la línea del archivo y analiza como campos CSV

Descripción

publicSplFileObject::fgetcsv(string$separator = ",", string$enclosure = "\"", string$escape = "\\"): array|false

Obtiene 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.

Parámetros

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ácter escape 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ácter enclosure el carácter escape no tiene un significado especial; ni siquiera está destinado a escapar de sí mismo.

Valores devueltos

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 utilice SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, en cuyo caso se saltan las líneas vacías.

Historial de cambios

VersiónDescripción
7.4.0 El parámetro escape ahora también acepta un string vacío para desactivar el mecanismo de escape propio.

Ejemplos

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

Ver también

To Top