Importer un fichier CSV avec la classe PHP SplFileObject
Publié le 06/07/2024 • Actualisé le 06/07/2024
Dans ce bout de code, nous voyons comment importer un fichier CSV avec la classe PHP SplFileObject. Ce qui est excellent avec cette classe, c'est qu'elle détecte automatiquement les séparateurs. Voici un échantillon du fichier CSV :
1,Dupont,Jean,jean.dupont@example.com,25,Paris
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet308Trait
{
public function snippet308(): void
{
$csvFile = \dirname(__DIR__, 3).'/data/data.csv';
$file = new \SplFileObject($csvFile);
$file->setFlags(\SplFileObject::READ_CSV);
foreach ($file as $fields) {
/** @var array<string, string> $fields */
if (\count(array_filter($fields)) > 0) { // ignore last empty line
var_dump($fields);
}
}
// That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Lire la doc Plus sur le web Snippet aléatoire