(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SplFileObject::fputcsv — Write a field array as a CSV line
$fields,$separator = ",",$enclosure = "\"",$escape = "\\",$eol = "\n"
Writes the fields array to the file
as a CSV line.
fieldsAn array of values.
separator
The field delimiter (one single-byte character only).
By default , or the value set by a prior call to
SplFileObject::setCsvControl().
enclosure
The field enclosure character (one single-byte character only).
By default " or the value set by a prior call to
SplFileObject::setCsvControl().
escape
The escape character (at most one single-byte character).
By default \ or the value set by a prior call to
SplFileObject::setCsvControl().
An empty string ("") disables the proprietary escape mechanism.
Nel flusso di input, il carattere enclosure
può sempre essere sottoposto a escape raddoppiandolo all’interno di una stringa tra virgolette,
producendo un singolo carattere enclosure
nel risultato analizzato.
Il carattere escape funziona in modo diverso:
se una sequenza di caratteri escape e
enclosure appare nell’input,
entrambi i caratteri saranno presenti nel risultato analizzato.
Quindi, per i parametri predefiniti, una riga CVS come
"a""b","c\"d" avrà i campi analizzati come
a"b e c\"d, rispettivamente.
As of PHP 8.4.0, depending on the default value of
escape is deprecated.
It needs to be provided explicitly either positionally or by the use
of Named Arguments,
or by a call to SplFileObject::setCsvControl().
eol
The optional eol parameter sets
a custom End of Line sequence.
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:
If an
enclosurecharacter is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by anescape.
Returns the length of the written string o false in caso di fallimento.
Genera un ValueError se
separator o enclosure
non sono lunghi un byte.
Genera un ValueError se
escape non è lungo un byte o è una stringa vuota.
| Versione | Descrizione |
|---|---|
| 8.4.0 |
L'affidamento sul valore predefinito di escape è ora
deprecato.
|
| 8.1.0 |
The optional eol parameter has been added.
|
| 7.4.0 |
The escape parameter now also accepts an empty
string to disable the proprietary escape mechanism.
|
Example #1 SplFileObject::fputcsv() example
<?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);
}
?>The above example will write the following to file.csv:
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""