(PHP 5 >= 5.1.0, PHP 7, PHP 8)
fputcsv — Format line as CSV and write to file pointer
$stream,$fields,$separator = ",",$enclosure = "\"",$escape = "\\",$eol = "\n"
fputcsv() formats a line (passed as a
fields array) as CSV and writes it
(terminated by a eol) to the specified
stream.
streamDer Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.
fieldsAn array of strings.
separator
Der Parameter separator setzt das
Feld-Trennzeichen.
Es muss ein Single-Byte-Zeichen sein.
enclosure
Der Parameter enclosure setzt das
Feld-Begrenzungszeichen.
Es muss ein Single-Byte-Zeichen sein.
escape
Der Parameter escape setzt das Maskierungs-Zeichen.
Es muss ein Single-Byte-Zeichen oder die leere Zeichenkette sein.
Die leere Zeichenkette ("") deaktiviert den
proprietären Maskierungsmechanismus.
Hinweis: Normalerweise wird ein
enclosure-Zeichen in einem Feld maskiert, indem es verdoppelt wird; allerdings kann alternativ dazu dasescape-Zeichen verwendet werden. So haben die Werte""und\"standardmäßig dieselbe Bedeutung. Abgesehen von der Möglichkeit, dasenclosure-Zeichen zu maskieren, hat das Zeichenescapekeine besondere Bedeutung; es ist nicht einmal dazu geeignet, sich selbst zu maskieren.
Seit PHP 8.4.0 ist es veraltet, sich auf den Standardwert von
escape zu verlassen.
Er muss explizit angegeben werden, entweder an der richtigen Stelle
oder durch die Verwendung von
benannten Argumenten.
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 string Bei 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 fputcsv() example
<?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);
?>The above example will write the following to file.csv:
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""