(PHP 5 >= 5.1.0, PHP 7, PHP 8)
fputcsv — Formatea una línea en CSV y la escribe en un fichero
$stream,$fields,$separator = ",",$enclosure = "\"",$escape = "\\",$eol = "\n"
fputcsv() formatea la línea pasada como
fields (array) como CSV y la escribe
(terminada por un eol) en el stream especificado.
streamEl puntero de archivo debe ser válido y apuntar a un archivo abierto con éxito por fopen() o fsockopen() (y no cerrado aún por fclose()).
fieldsUn 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
enclosurees escapado dentro de un campo duplicándolo; Sin embargo, el carácter de escapeescapepuede 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 encierroenclosureel carácter de escapeescapeno tiene significado especial; ni siquiera para escapar a sí mismo.
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.
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
enclosureestá contenido en un campo, será escapado duplicándolo, a menos que esté inmediatamente precedido por unescape.
Devuelve el tamaño 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 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"""