# SplFileObject::fputcsv

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

SplFileObject::fputcsv — Écrit un tableau sous la forme d'une ligne CSV

### Description

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

Écrit un tableau `fields` sous la forme d'une ligne CSV.

### Liste de paramètres

`fields`

  Un tableau de valeurs.

`separator`

  Le délimiteur de champ (un seul caractère sur un octet). Par défaut, `,` ou la valeur définie par un appel précédent à SplFileObject::setCsvControl().

`enclosure`

  Le caractère utilisé pour entourer la valeur d'un champ (un caractère d'un seul octet). Par défaut, ce sera un guillemet double ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl().

`escape`

  Le caractère d'encadrement de champ (un seul caractère sur un octet). Par défaut, `"` ou la valeur définie par un appel précédent à SplFileObject::setCsvControl(). Une chaîne de caractères vide (`""`) désactive le mécanisme d'échappement propriétaire.

  > Note: Habituellement, un `enclosure` caractère est échappé à l'intérieur d'un champ en le doublant; Toutefois, le caractère `escape` peut être utilisé comme une alternative. Ainsi, pour les valeurs de paramètre par défaut `""` et `\"` ont la même signification. Autre que de permettre d'échapper le caractère `enclosure` le caractère `escape` n'a pas de sens particulier; il n'est même pas destiné à s'échapper.

  Avertissement

  À partir de PHP 8.4.0, dépendre de la valeur par défaut de `escape` est obsolète. Elle doit être fournie explicitement soit par position, soit par l'utilisation des arguments nommés, ou par un appel à SplFileObject::setCsvControl().

`eol`

  Le paramètre optionnel `eol` définit une séquence de fin de ligne (End of Line) personnalisé.

Avertissement

Lorsque le `escape` est défini sur autre chose qu'une chaîne vide (`""`), cela peut entraîner un CSV qui n'est pas conforme à » RFC 4180 ou incapable de survivre à un aller-retour à travers les fonctions CSV de PHP. La valeur par défaut pour `escape` est `"\\"`, il est donc recommandé de la définir explicitement sur une chaîne vide. La valeur par défaut changera dans une future version de PHP, au plus tôt dans PHP 9.0.

> Note:

> Si un caractère `enclosure` est contenu dans un champ, il sera échappé en le doublant, à moins qu'il ne soit immédiatement précédé d'un `escape`.

### Valeurs de retour

Retourne la longueur de la chaîne écrite ou `false` si une erreur survient.

### Erreurs / Exceptions

Lève une ValueError si `separator` ou `enclosure` n'a pas une longueur de un octet.

Lève une ValueError si `escape` n'a pas une longueur de un octet ou est une chaîne vide.

### Historique

Version | Description
--- | ---
8.4.0 | Se fier à la valeur par défaut de `escape` est désormais déprécié.
8.1.0 | Le paramètre optionnel `eol` a été ajouté.
7.4.0 | Le paramètre `escape` accepte désormais une chaîne de caractères vide afin de désactivé le mécanisme d'échapement propriétaire.

### Exemples

Exemple #1 Exemple avec SplFileObject::fputcsv()

`<?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);
}
?>`

L'exemple suivant va écrire la ligne suivante dans le fichier `file.csv` :

    aaa,bbb,ccc,dddd
    123,456,789
    """aaa""","""bbb"""

### Voir aussi

- SplFileObject::fgetcsv() - Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV
- SplFileObject::setCsvControl() - Définit les options CSV
- SplFileObject::getCsvControl() - Récupère les options pour CSV
- fputcsv() - Formate une ligne en CSV et l'écrit dans un fichier
- fgetcsv() - Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV
- str_getcsv() - Analyse une chaîne de caractères CSV dans un tableau