> CopixCSV
fr

Présentation

CopixCSV est une classe vous permettant de manipuler les fichiers de type CSV.

Créer un fichier CSV

Pour commencer et créer un fichier CSV, il convient d'instancier un objet de type CopixCSV et prenant pour paramètre le nom du fichier. Si celui ci n'existe pas, il sera créé. Il existe deux paramètres optionnels permettant de définir le séparateur de champ et le délimiteur de texte.

Par défaut le séparateur de champ sera , et le délimiteur de texte '


// Déclaration d'un objet csv
$objectCsv = new CopixCSV ('fichier.csv');
// Déclaration d'un objet csv dont le séparateur de champ est ;
$objectCsv = new CopixCSV ('fichier.csv', ';');

// Déclaration d'un objet csv dont le séparateur de champ est ; et le délimiteur "
$objectCsv = new CopixCSV ('fichier.csv', ';', '"');
 

Pour ajouter une ligne la classe met à disposition une méthode addLine prenant en paramètre un tableau contenant les éléments à ajouter dans le fichier.


$arElems = array("champ1", "champ2", "champ3");
$objectCsv->addLine($arElems);
 

Paramètres optionnels

Il est possible, au moment de l'instanciation de votre classe, de définir le délimiteur et le séparateur de texte de votre fichier CSV :


// Création d'un fichier CSV ayant pour séparateur un | et délimiteur de texte "
$objectCsv = new CopixCSV ('fichier.csv', '|', '"');
 

Parcourir un fichier CSV

Il existe un itérateur pour parcourir vos fichiers CSV.

La classe CopixCSV fournit cette méthode pour récupérer les données :

exemple avec getIterator ()

Parcourir le code en sens normal :


$objectCsv = new CopixCSV ('fichier.csv', '|', '"');

// $csvIterator contient l'itérateur sur le fichier CSV déclaré par $objectCsv
$csvIterator = $objectCsv-> getIterator();

// $line est un tableau indexé numériquement  contenant les champs de chaque ligne du fichier CSV.
while ($ligne = $csvIterator->current ()) {
    // On affiche le premier champ
    echo $line[0];
    $csvIterator->next ();
}
 

Utilisation de la première ligne comme en-tête (Copix 3.0.2 et suivante)

Depuis la version 3.0.2 il est possible d'indiquer à l'iterator que les index des tableaux renvoyés sont indexés par les champs de la première ligne du fichier csv. Dans ce cas la première ligne ne sera pas renvoyés. Pour celà il faut passé une valeur vrai à la méthode getIterator. Dans Copix 3.0.3 des constantes remplaceront le booléen.

fichier.csv


champ1;champ2;champ3
info1;info2;info3
 

En PHP (Copix 3.0.2):


$objectCsv = new CopixCSV ('fichier.csv', ';');

// $csvIterator contient l'itérateur sur le fichier CSV déclaré par $objectCsv
$csvIterator = $objectCsv-> getIterator(true);

// $line est un tableau indexé numériquement  contenant les champs de chaque ligne du fichier CSV.
while ($ligne = $csvIterator->current ()) {
    // On affiche le premier champ
    echo $line['champ1'];
    $csvIterator->next ();
}
 

Utilisation dans Copix

La classe CopixCSV est utilisée dans la stratégie de log fichier : /copix/utils/copix/log/CopixLogFileStrategy.class.php