Fonction fgetcsv

La fonction fgetcsv lit une ligne d'un fichier et l'analyse en champs au format CSV. Le premier paramètre de la fonction accepte un pointeur vers un fichier ouvert, le deuxième - la longueur maximale de la ligne, le troisième - le séparateur de champs (par défaut une virgule), le quatrième - le caractère délimiteur (par défaut des guillemets doubles), le cinquième - le caractère d'échappement.

Syntaxe

phpfgetcsv(
  resource $handle,
  int $length = 0,
  string $separator = ",",
  string $enclosure = "\"",
  string $escape = "\"
);

Exemple

Lisons un fichier CSV ligne par ligne et affichons son contenu :

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file)) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Résultat de l'exécution du code pour un fichier avec le contenu "a,b,c" :

php['a', 'b', 'c']

Exemple

Lecture d'un CSV avec indication de la longueur maximale de ligne et d'un séparateur personnalisé :

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 1000, ';')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Résultat de l'exécution du code pour un fichier avec le contenu "a;b;c" :

php['a', 'b', 'c']

Exemple

Lecture d'un CSV avec guillemets et échappement :

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 0, ',', '"', '\')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Résultat de l'exécution du code pour un fichier avec le contenu '"a,b",c,"d\"e"' :

php['a,b', 'c', 'd"e']

Voir aussi

  • la fonction fputcsv,
    qui écrit des données au format CSV
  • la fonction fgets,
    qui lit une ligne d'un fichier