fputcsv

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

fputcsvFormatea una línea en CSV y la escribe en un fichero

Descripción

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

fputcsv() formatea la línea pasada como fields (array) como CSV y la escribe (terminada por un eol) en el stream especificado.

Parámetros

stream

El fichero al que se apunta debe ser válido, y debe apuntar a un fichero abierto por fopen() o fsockopen() (y que todavía no esté cerrado por fclose()).

fields

Un array de strings.

separator

El parámetro separator define el separador de campo. Debe tratarse de un carácter de un solo byte.

enclosure

El parámetro enclosure define el carácter de encierro de los campos. Debe tratarse de un carácter de un solo byte.

escape

El parámetro escape define el carácter de escape. Debe tratarse de un carácter de un solo byte o una cadena vacía. La cadena vacía ("") desactiva el mecanismo de escape propietario.

Nota: Generalmente un carácter de encierro enclosure es escapado dentro de un campo duplicándolo; Sin embargo, el carácter de escape escape puede ser utilizado como alternativa. Por lo tanto, para los valores por omisión "" y \" tienen el mismo significado. Además de escapar el carácter de encierro enclosure el carácter de escape escape no tiene significado especial; ni siquiera para escapar a sí mismo.

Advertencia

A partir de PHP 8.4.0, el uso del valor por omisión de escape está deprecado. Debe ser proporcionado explícitamente ya sea por posición o mediante el uso de los argumentos nombrados.

eol

El parámetro opcional eol define una secuencia de fin de línea personalizada.

Advertencia

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 un escape.

Valores devueltos

Devuelve el tamaño de la cadena escrita o false en caso de 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 fputcsv()

<?php

$list
= [
[
'aaa', 'bbb', 'ccc', 'dddd'],
[
'123', '456', '789'],
[
'"aaa"', '"bbb"']
];

$fp = fopen('file.csv', 'w');

foreach (
$list as $fields) {
fputcsv($fp, $fields, ',', '"', '');
}

fclose($fp);
?>

El ejemplo anterior escribirá lo siguiente en file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Ver también