Lire un fichier CSV avec PHP

Un fichier Comma-separated values (CSV) stocke des données tabulaires sous forme de texte brut. Il s’agit souvent d’un enregistrement séparé par une virgule ou tout autre délimiteur. Dans ce tutoriel nous allons découvrir comment lire un fichier CSV avec PHP.
 
 
Un exemple de fichier CSV:

Alex, France, 22 ans
Emily, États-Unis, 18 ans
Jean, Royaume-Uni, 25 ans
Yohan, États-Unis, 32 ans

La première colonne est le nom de la personne, la deuxième colonne est le pays d’origine de la personne et la dernière colonne est l’âge. Comme vous pouvez le constater, chaque personne est séparée par une nouvelle ligne.

En PHP, il existe une fonction appelée fgetcsv, qui analysera automatiquement les champs CSV d’un descripteur de ressource donné.

Voici une fonction simple qui montre comment lire notre fichier CSV et renvoie un tableau contenant les données du CSV.

<?PHP
function read($csv){
    $file = fopen($csv, 'r');
    while (!feof($file) ) {
        $line[] = fgetcsv($file, 1024);
    }
    fclose($file);
    return $line;
}

// Définir le chemin d'accès au fichier CSV
$csv = 'myfile.csv';

$csv = read($csv);
echo '<pre>';
print_r($csv);
echo '</pre>';
?>

La sortie :

Array
(
    [0] => Array
        (
            [0] => Nom
            [1] => Pays
            [2] => Age
        )

    [1] => Array
        (
            [0] => Alex
            [1] => France
            [2] => 22 ans
        )

    [2] => Array
        (
            [0] => Emily
            [1] => États-Unis
            [2] => 18 ans
        )

    [3] => Array
        (
            [0] => Jean
            [1] => Royaume-Uni
            [2] => 25 ans
        )
		
    [4] => Array
        (
            [0] => Yohan
            [1] => États-Unis
            [2] => 32 ans
        )
)
Partagez cet article

Une réflexion sur “Lire un fichier CSV avec PHP

  • Avatar
    octobre 12, 2020 à 10:47
    Permalien

    Très bon travail merci, cependant je vous recommande de retravailler vos miniatures car celles ci ne sont points très attirante ! Bonne continuation

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *