Cette section est close pour le moment.
Mais je n'arrête pas la veille, loin de là. Retrouvez mes projets sur Github et sur cette page qui sera à jour plus régulierement


Ressources

Définition de ressource : (nom féminin) Qui peut fournir ce dont on a besoin.
Vous l'aurez compris, sur cette page ce ne sont pas vraiment des tutoriels, c'est plutôt des penses-bêtes plus ou moins fournis mais qui vous permettront d'avoir des bases concernant la programmation.
Recherche par tag

Manipulation des fichiers CSV

Manipulation des fichiers CSV
Publication : Le 11/10/2012 à 16:50:29

Introduction

Savoir manipuler les fichiers CSV peut vous faire gagner un temps précieux. Si vous avez à exporter une table afin de l'envoyer par mail ou si vous avez à insérer le contenu d'un fichier dans votre base vous aurez besoin des fonctions CSV.

Un fichier CSV c'est quoi ?

C'est un fichier texte qui peuvent être ouvrir dans un tableur.
- Une colonne du tableur est séparé par une virgule.
- Une ligne est représentée par un saut à la ligne.

Ouverture et fermeture d'un fichier CSV

Comme un fichier CSV est un fichier texte, il faut utiliser la fonction fopen($file, $mode).

Choisissez bien votre mode d'écriture / d'ouverture de fichier pour ne pas écraser un document existant.
<?php
 $file = 'mon-fichier-csv.csv';
 $fp = $fopen($file, 'a+');
?>
Pour fermer le fichier on utilise la fonction fclose($fp).
<?php
 fclose($fp);
?>

Ecrire des lignes dans le fichier

On va utiliser la fonction fputcsv($fp, $data_array, $delimiter).

- La variable $fp contient le fichier CSV.
- Les données à écrire sont stockées dans $data_array qui est un tableau en php .
- $delimiter contient le délimiteur de colonne. Par défaut c'est une virgule. Gardez bien le même délimiteur pour votre fichier.
<?php
 fputcsv($fp, array('Civilité', 'Nom', 'Prénom', 'rue', 'cp', 'ville'));
?>

Parcourir un fichier pour le lire

Vous pouvez utiliser les fonctions fgets() ou fgetcsv() pour stocker une ligne du fichier.

Nous allons nous tourner vers fgetcsv($fp, $longueur, $delimiter).

A noter que les variables $longueur et $delimiter sont optionnelles (il y a d'autres variables, à vous de rechercher dans la documentation php).

Mais avant de lire une ligne il faut parcourir un fichier. Pour ceci on utilise feof($fp) dans une boucle while, et tant qu'on a pas atteint la fin du fichier, on continue de lire.

Une fois la ligne parcourue et stockée dans une variable via la fonction fgetcsv() nous pourrons lire les données. Ces données sont renvoyées sous forme de tableau PHP.
<?php
 echo '<table>';
 while(!feof($fp)){
  $row = fgetcsv($fp);
  echo '<tr>';
  foreach($row as $value){
   echo '<td>' . $value . '</td>';
  }
  echo '</tr>';
 }
 echo '</table>';
?>

Conclusion

Comme souvent quand on gère des documents en php, attention à l'encodage !

Sur le même thème

Manipulation des fichiers CSV
Publication : Le 11/10/2012 à 16:50:29

Tags

Tag : PHP

Suggestion :

Swiftmailer, une librairie pour envoyer des mails

Swiftmailer, une librairie pour envoyer des mails