Comment analyser un fichier CSV en PHP

Un CSV est un type de fichier. Il signifie Comma Separated Values (valeurs séparées par des virgules). Il est couramment utilisé dans différents logiciels tels qu’Excel. Cela permet d’enregistrer des données sous forme de tableau et avec une extension .csv.

Pour analyser un fichier CSV en PHP, cela peut être fait en utilisant la combinaison des fonctions fopen(), fgetcsv() et fclose() qui sont intégrées dans PHP.

Exemple:

/*
//sampleFile.csv
dog, cat, rat, fish
horse, cow, carabao
bird, rabbit, chicken
*/
$ctr = 1;
if (($file = fopen("sampleFile.csv", "r")) !== FALSE) {
  while (($record = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $total = count($record);
    echo "<p> $total fields in line $row: <br /></p>\n";
    $ctr++;
    for ($x = 0; $x < $ctr; $x++) {
        echo $record[$x] . "<br />\n";
    }
  }
  fclose($file);
}
//output:
/*
4 fields in line 1:

dog
cat
3 fields in line 2:

horse
cow
carabao
3 fields in line 3:

bird
rabbit
chicken
*/

L’exemple ci-dessus analyse le contenu du fichier sampleFile.csv en utilisant ces fonctions:

fopen(Filename, Mode, Include_path, context)

Cette fonction accepte une URL ou un fichier, lie une ressource nommée qui est spécifiée par le nom du fichier à un flux.

Paramètres:

  • Filename (obligatoire) - Ce paramètre spécifie le fichier ou l’URL à ouvrir
  • Mode (obligatoire) - Ceci représente le type d’accès au dossier dont vous avez besoin.
  • Include_path (optionnel) - Mettre ce paramètre à 1 permettra de rechercher le fichier dans le include_path.
  • context (optionnel) - Ceci spécifie le contenu du gestionnaire de fichier. C’est un ensemble d’options qui peuvent être mises à jour sur le comportement du flux.

fgetcsv()

Cette fonction est responsable de l’analyse d’une ligne d’un fichier CSV ouvert.

Paramètres:

  • File (obligatoire) - Ce paramètre indique le fichier ouvert à retourner et à analyser une ligne.
  • Length (facultatif en PHP 5 et inférieur mais obligatoire en PHP 5.1 et supérieur) - Ce paramètre est la longueur maximale de la ligne. Elle doit être supérieure à la ligne la plus longue du fichier. Si ce paramètre n’est pas présent, alors la longueur n’est pas limitée, ce qui la rend plus lente à analyser.
  • Separator (facultatif) - Ce paramètre est le séparateur de champ, et la valeur par défaut est une virgule - ,.
  • Enclosure (facultatif) - Ce paramètre est l’enveloppe du champ, et la valeur par défaut est ".
  • Escape (facultatif) - Ce paramètre est le caractère d’échappement, et la valeur par défaut est “_“.

fclose()

Cette fonction permet de fermer un pointeur de fichier ouvert.

Paramètre:

  • File (obligatoire) - Spécifie le fichier à fermer.

Note: Le pointeur de fichier doit être valide, et doit pointer vers un fichier ouvert avec succès par fopen().

Article connexe - PHP CSV