(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SplFileObject::fputcsv — Escribe un array en forma de línea CSV
$fields
,$separator
= ",",$enclosure
= "\"",$escape
= "\\",$eol
= "\n"
Escribe un array fields
en forma de línea CSV.
fields
Un array de valores.
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 string 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().
eol
El parámetro opcional eol
define una secuencia de fin de línea personalizada.
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.
Nota:
Si un carácter
enclosure
está contenido en un campo, será escapado duplicándolo, a menos que esté inmediatamente precedido por unescape
.
Devuelve la longitud de la cadena escrita o false
si ocurre un error.
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.
|
8.1.0 |
Se añadió el parámetro opcional eol .
|
7.4.0 |
El parámetro escape ahora acepta una cadena vacía para desactivar el mecanismo de escape propietario.
|
Ejemplo #1 Ejemplo con SplFileObject::fputcsv()
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$file = new SplFileObject('file.csv', 'w');
foreach ($list as $fields) {
$file->fputcsv($fields);
}
?>
El siguiente ejemplo escribirá la línea siguiente en el fichero
file.csv
:
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""