(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.
Hinweis: Usually an
enclosurecharacter is escaped inside a field by doubling it; however, theescapecharacter can be used as an alternative. So for the default parameter values""and\"have the same meaning. Other than allowing to escape theenclosurecharacter theescapecharacter has no special meaning; it isn't even meant to escape itself.
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.
Wenn escape auf etwas anderes als eine leere Zeichenkette
("") gesetzt wird, kann dies zu einer CSV-Datei führen, die
nicht mit » RFC 4180 konform ist oder die
den Umlauf durch die PHP-CSV-Funktionen nicht übersteht. Der Standardwert für
escape ist "\\", weshalb empfohlen
wird, diesen Parameter explizit auf eine leere Zeichenkette zu setzen.
Der Standardwert wird sich in einer zukünftigen Version von PHP ändern, jedoch
nicht vor PHP 9.0.
Hinweis:
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 stringBei einem Fehler wird false zurückgegeben..
Wenn separator oder enclosure
nicht ein Byte lang ist, wird ein ValueError
geworfen.
Wenn escape nicht ein Byte lang oder eine leere
Zeichenkette ist, wird ein ValueError
geworfen.
| Version | Beschreibung |
|---|---|
| 8.4.0 |
Sich auf den Standardwert von escape zu
verlassen, ist nun veraltet.
|
| 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.
|
Beispiel #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"""