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

# 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 function 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'échappement (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.

  Avertissement

  Dans le flux d'entrée, le caractère d'encadrement `enclosure` peut toujours être échappé en le doublant à l'intérieur d'une chaîne entre guillemets, ce qui donne un seul caractère `enclosure` dans le résultat analysé. Le caractère d'échappement `escape` fonctionne différemment : si une séquence de caractères `escape` et `enclosure` apparaît dans l'entrée, les deux caractères seront présents dans le résultat analysé. Donc avec les paramètres par défaut, une ligne CSV comme `"a""b","c\"d"` aura les champs analysés comme `a"b` et `c\"d`, respectivement.

  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ée.

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 d'un octet.

Lève une ValueError si `escape` n'a pas une longueur d'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ésactiver le mécanisme d'échappement 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open