SplFileObject::fputcsv

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

SplFileObject::fputcsvEscribe un array en forma de línea CSV

Descripción

public SplFileObject::fputcsv(
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false

Escribe un array fields en forma de línea CSV.

Parámetros

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.

Advertencia

En el flujo de entrada, el carácter enclosure siempre puede ser escapado duplicándolo dentro de una cadena entrecomillada, lo que resulta en un único carácter enclosure en el resultado analizado. El carácter escape funciona de manera diferente: si una secuencia de caracteres escape y enclosure aparece en la entrada, ambos caracteres estarán presentes en el resultado analizado. Así, para los parámetros por defecto, una línea CSV como "a""b","c\"d" tendrá los campos analizados como a"b y c\"d, respectivamente.

Advertencia

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.

Advertencia

Cuando escape se define con un valor diferente a una cadena vacía (""), puede resultar en un CSV que no sea compatible con » RFC 4180 o que no pueda sobrevivir a un ciclo de ida y vuelta a través de las funciones CSV de PHP. El valor predeterminado de escape es "\\", por lo que se recomienda definirlo explícitamente como cadena vacía. El valor predeterminado cambiará en una futura versión de PHP, no antes de 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 un escape.

Valores devueltos

Devuelve la longitud de la cadena escrita o false si ocurre un error.

Errores/Excepciones

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.

Historial de cambios

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.

Ejemplos

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"""

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top