Travailler avec CSV en PHP : bibliothèque SplFileObject et fonctions intégrées

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que CSV et pourquoi travailler avec en PHP ?

CSV (Comma-Separated Values) est un format de stockage de données tabulaires où les lignes sont séparées par des sauts de ligne et les colonnes par des virgules ou d'autres délimiteurs. En PHP, le travail avec CSV est nécessaire pour l'import/export de données depuis Excel, Google Sheets, les systèmes CRM, ainsi que pour le traitement de logs et l'échange de données entre services. La bibliothèque standard de PHP fournit des outils puissants pour lire et écrire des CSV sans installer de modules supplémentaires.

Fonctions principales pour travailler avec CSV

PHP dispose de fonctions intégrées : fgetcsv() — lecture d'une ligne CSV depuis un fichier, fputcsv() — écriture d'un tableau au format CSV, ainsi que la classe SplFileObject qui simplifie l'itération sur les fichiers CSV. Pour travailler en mémoire, on peut utiliser str_getcsv() pour analyser une chaîne sans fichier.

Installation

Aucune installation supplémentaire n'est nécessaire, car ces fonctions font partie du noyau PHP. Pour travailler avec CSV, il suffit d'activer le support des opérations sur les fichiers (généralement activé par défaut).

Fonctions principales et leur utilisation

  • fgetcsv($handle, $length, $delimiter, $enclosure, $escape) — lit une ligne d'un fichier ouvert et retourne un tableau de champs.
  • fputcsv($handle, $fields, $delimiter, $enclosure, $escape) — écrit un tableau sous forme de ligne CSV dans un fichier.
  • str_getcsv($input, $delimiter, $enclosure, $escape) — analyse une chaîne CSV sans fichier.
  • SplFileObject::fgetcsv() — méthode pour lire du CSV dans un style orienté objet.

Exemple de code PHP

<?php// Lecture d'un fichier CSV$filename = 'data.csv';if (($handle = fopen($filename, 'r')) !== false) {    while (($data = fgetcsv($handle, 1000, ',')) !== false) {        echo 'Nom : ' . $data[0] . ', Email : ' . $data[1] . '<br>';    }    fclose($handle);}

// Écriture dans un CSV$list = [ ['Ivan', 'ivan@example.com'], ['Maria', 'maria@example.com']];$handle = fopen('output.csv', 'w');foreach ($list as $fields) { fputcsv($handle, $fields);}fclose($handle);

// Utilisation de SplFileObject$file = new SplFileObject('data.csv');$file->setFlags(SplFileObject::READ_CSV);foreach ($file as $row) { print_r($row);}?>

Quand utiliser

La bibliothèque convient pour : l'import de produits depuis Excel dans une boutique en ligne, l'export de rapports, le traitement de contacts depuis un CRM, le chargement de données depuis Google Sheets via l'export en CSV, ainsi que pour la migration de données entre systèmes. Pour les gros fichiers, il est recommandé d'utiliser les itérateurs SplFileObject ou la lecture ligne par ligne afin d'éviter un débordement de mémoire.

Conclusion

Les outils intégrés de PHP pour travailler avec CSV sont une solution fiable et rapide pour la plupart des tâches. Ils ne nécessitent pas l'installation de bibliothèques supplémentaires, supportent différents délimiteurs et échappements, et s'intègrent facilement avec les bases de données et les formulaires web. Si vous devez traiter du CSV en PHP, commencez par fgetcsv() et fputcsv() — c'est le standard de facto.

Recommendations