(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::fgetcsv — Recupera una línea del archivo y la analiza como datos CSV
$separator
= ",", string $enclosure
= "\"", string $escape
= "\\"): array|falseRecupera una línea del archivo y la analiza como datos CSV y devuelve un array que contiene todos los campos leídos.
Nota: Los parámetros de configuración local son tenidos en cuenta por esta función. Por ejemplo, los datos codificados en ciertos juegos de caracteres de un byte pueden ser analizados incorrectamente si
LC_CTYPE
esen_US.UTF-8
.
separator
El delimitador de campo (un solo carácter de un byte).
Por omisión, ,
o el valor definido por una llamada previa a
SplFileObject::setCsvControl().
enclosure
El carácter utilizado para encerrar el valor de un campo (un carácter de un solo byte). Por omisión, será una comilla doble o bien el valor definido utilizando el método SplFileObject::setCsvControl().
escape
El carácter de escape de campo (un solo carácter de un byte).
Por omisión, "
o el valor definido por una llamada previa a
SplFileObject::setCsvControl().
Un chaîne de caractères vacío (""
) desactiva el mecanismo de escape propietario.
Nota: Normalmente, un carácter
enclosure
se escapa dentro de un campo duplicándolo; Sin embargo, el carácterescape
puede ser utilizado como alternativa. Así, para los valores de parámetro por omisión""
y\"
tienen el mismo significado. Además de permitir escapar el carácterenclosure
el carácterescape
no tiene un significado particular; ni siquiera está destinado a escapar.
A partir de PHP 8.4.0, depender del valor por omisión de
escape
está deprecado.
Debe ser proporcionado explícitamente ya sea por posición, ya sea mediante
el uso de los argumentos nombrados,
o mediante una llamada a SplFileObject::setCsvControl().
When escape
is set to anything other than an empty string
(""
) it can result in CSV that is not compliant with
» RFC 4180 or unable to survive a roundtrip
through the PHP CSV functions. The default for escape
is
"\\"
so it is recommended to set it to the empty string explicitly.
The default value will change in a future version of PHP, no earlier than PHP 9.0.
Devuelve un array indexado que contiene todos los campos leídos, o false
si ocurre un error.
Nota:
Una línea vacía de un archivo CSV será devuelta en forma de un array contenido un solo campo
null
a menos que se utiliceSplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE
, en cuyo caso, las líneas vacías serán ignoradas.
Genera una ValueError si
separator
o enclosure
no tiene una longitud de un byte.
Genera una ValueError si
escape
no tiene una longitud de un byte o es una cadena vacía.
Versión | Descripción |
---|---|
8.4.0 |
Confiar en el valor por omisión de escape está ahora
deprecado.
|
7.4.0 |
El parámetro escape ahora acepta una cadena de
caracteres vacía para desactivar el mecanismo de escape propietario.
|
Ejemplo #1 Ejemplo con SplFileObject::fgetcsv()
<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
var_dump($file->fgetcsv());
}
?>
Ejemplo #2 Ejemplo con SplFileObject::READ_CSV
<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
list($animal, $class, $legs) = $row;
printf("Un %s es un %s con %d patas\n", $animal, $class, $legs);
}
?>
Contenido de animals.csv
crocodile,reptile,4 dauphin,mammifère,0 canard,oiseau,2 koala,mammifère,4 saumon,poisson,0
El resultado del ejemplo sería algo similar a:
Un crocodile es un reptile con 4 patas Un dauphin es un mammifère con 0 patas Un canard es un oiseau con 2 patas Un koala es un mammifère con 4 patas Un saumon es un poisson con 0 patas
SplFileObject::READ_CSV