fputcsv

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

fputcsvFormat line as CSV and write to file pointer

Beschreibung

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

fputcsv() formats a line (passed as a fields array) as CSV and writes it (terminated by a eol) to the specified stream.

Parameter-Liste

stream

Der 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.

fields

An 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 das escape-Zeichen verwendet werden. So haben die Werte "" und \" standardmäßig dieselbe Bedeutung. Abgesehen von der Möglichkeit, das enclosure-Zeichen zu maskieren, hat das Zeichen escape keine besondere Bedeutung; es ist nicht einmal dazu geeignet, sich selbst zu maskieren.

Warnung

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.

Warnung

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 enclosure character is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by an escape.

Rückgabewerte

Returns the length of the written string Bei einem Fehler wird false zurückgegeben..

Fehler/Exceptions

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.

Changelog

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.

Beispiele

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"""

Siehe auch