Format line as CSV and write to file pointer

- « fpassthru

- fputs »

- PHP Manual
- Filesystem Functions
- Format line as CSV and write to file pointer

# fputcsv

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

fputcsv — Format line as CSV and write to file pointer

### Description

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 newline) to the specified file `stream`.

### Parameters

`stream`

  The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).

`fields`

  An array of strings.

`separator`

  The optional `separator` parameter sets the field delimiter (one single-byte character only).

`enclosure`

  The optional `enclosure` parameter sets the field enclosure (one single-byte character only).

`escape`

  The optional `escape` parameter sets the escape character (at most one single-byte character). An empty string (`""`) disables the proprietary escape mechanism.

`eol`

  The optional `eol` parameter sets a custom End of Line sequence.

> Note:

> If an `enclosure` character is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by an `escape`.

### Return Values

Returns the length of the written string or `false` on failure.

### Changelog

Version | Description
--- | ---
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.

### Examples

Example #1 fputcsv() example

    <?php$list = array (    array('aaa', 'bbb', 'ccc', 'dddd'),    array('123', '456', '789'),    array('"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"""

### Notes

> Note: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem.

### See Also

- fgetcsv() - Gets line from file pointer and parse for CSV fields