Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

# SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetcsv — Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

### Description

public SplFileObject::fgetcsv ([ string `$delimiter` = "," [, string `$enclosure` = "\"" [, string `$escape` = "\\" ]]] ) : array

Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV et retourne un tableau contenant tous les champs lus.

> Note:

> La définition des locales entre en jeu avec cette fonction. Si LC_CTYPE vaut, par exemple en_US.UTF-8, les fichiers encodés par un encodage d'un octet peuvent être mal lu par cette function.

### Liste de paramètres

`delimiter`

  Le délimiteur de champs (au plus un caractère). Par défaut, ce sera une virgule ou la valeur définie en utilisant la méthode SplFileObject::setCsvControl(). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

`enclosure`

  Le caractère utilisé pour entourer la valeur d'un champ (un seul caractère). 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 (au plus un caractère). Par défaut, ce sera un anti-slash (\) ou bien la valeur définie en utilisant la méthode 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.

### Valeurs de retour

Retourne un tableau indexé contenant tous les champs lus, ou `FALSE` si une erreur survient.

> Note:

> Une ligne vide d'un fichier CSV sera retourné sous la forme d'un tableau contenu un seul champ `NULL` sauf si vous utilisez `SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE`, auquel cas, les lignes vides seront ignorées.

### Historique

Version | Description
--- | ---
7.4.0 | Le paramètre `escape` accepte désormais une chaîne de charactère vide afin de désactivé le mécanisme d'échapement propriétaire.

### Exemples

Exemple #1 Exemple avec SplFileObject::fgetcsv()

`<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
var_dump($file->fgetcsv());
}
?>`

Exemple #2 Exemple avec `SplFileObject::READ_CSV`

`<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
list($animal, $class, $legs) = $row;
printf("Un %s est un %s avec %d jambes\n", $animal, $class, $legs);
}
?>`

Contenu de animals.csv

    crocodile,reptile,4
    dauphin,mammifère,0
    canard,oiseau,2
    koala,mammifère,4
    saumon,poisson,0

L'exemple ci-dessus va afficher quelque chose de similaire à :

    Un crocodile est un reptile avec 4 jambes
    Un dauphin est un mammifère avec 0 jambes
    Un canard est un oiseau avec 2 jambes
    Un koala est un mammifère avec 4 jambes
    Un saumon est un poisson avec 0 jambes

### Voir aussi

- SplFileObject::setCsvControl() - Définit les options CSV
- SplFileObject::setFlags() - Définit les drapeaux pour l'objet SplFileObject
- SplFileObject::READ_CSV
- SplFileObject::current() - Récupère la ligne courante d'un fichier