Depuis un fichier CSV, je cherche à le convertir en XML.
Le fichier CSV contient une ligne d'en-tete avec les 4 premieres colonnes obligatoire dont les entetes sont fixes. Les suivantes sont de deux types X et Y suivi de un underscore et d'une valeur (il peut y avoir n entrée
AAAA;BBBB;CCCC;DDDD;X_machin;Y_chose
voici un exemple de fichier :
Code : Tout sélectionner
NOM;PRENOM;SEXE;AGE;ADRESSE_RUE;ADRESSE_CODEPOSTAL;ADRESSE_VILLE;COMMANDE_ENTREE1;COMMANDE_ENTREE2
michel;gerard;m;35;rue des champs;75017;paris;2225;5
plous;patrick;m;25;;;;;
azeerty;coralie;f;56;;94000;creteil;;10Code : Tout sélectionner
<root>
<CreerPersonne NOM="michel" PRENOM="gerard" SEXE="m">
<Categorie AGE="35">
<Saisie type="ADRESSE_" name="RUE" value="rue des champs"></Param>
<Saisie type="ADRESSE_" name="CODEPOSTAL" value="75017"></Param>
<Saisie type="ADRESSE_" name="VILLE" value="paris"></Param>
<Saisie type="COMMANDE_" name="ENTREE1" value="5"></Param>
<Saisie type="COMMANDE_" name="ENTREE2" value=""></Param>
</Categorie>
</CreerPersonne>
<CreerPersonne NOM="plous" PRENOM="patrick" SEXE="m">
<Categorie AGE="25">
<Saisie type="ADRESSE_" name="RUE" value=""></Param>
<Saisie type="ADRESSE_" name="CODEPOSTAL" value=""></Param>
<Saisie type="ADRESSE_" name="VILLE" value=""></Param>
<Saisie type="COMMANDE_" name="ENTREE1" value=""></Param>
<Saisie type="COMMANDE_" name="ENTREE2" value=""></Param>
</Categorie>
</CreerPersonne>
<CreerPersonne NOM="azeerty" PRENOM="coralie" SEXE="f">
<Categorie AGE="56">
<Saisie type="ADRESSE_" name="RUE" value=""></Saisie>
<Saisie type="ADRESSE_" name="CODEPOSTAL" value="94000"></Saisie>
<Saisie type="ADRESSE_" name="VILLE" value="creteil"></Saisie>
<Saisie type="COMMANDE_" name="ENTREE1" value="10"></Saisie>
<Saisie type="COMMANDE_" name="ENTREE2" value=""></Saisie>
</Categorie>
</CreerPersonne>
</root>echo '<pre><root></pre>';
$handle = fopen($fichier, "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
if (!empty($data[0]))
{
$nb_col = count($data);
$ligne++;
$NOM[] = suppr_accents($data[0]);
$PRENOM[] = suppr_accents($data[1]);
$SEXE[] = suppr_accents($data[2]);
$AGE[] = suppr_accents($data[3]);
$RUE[] = suppr_accents($data[4]);
$CODEPOSTAL[] = suppr_accents($data[5]);
$VILLE[] = suppr_accents($data[6]);
$ENTREE1[] = suppr_accents($data[7]);
$ENTREE2[] = suppr_accents($data[8]);
}
}
for ($c=1; $c < $ligne; $c++) {
echo '<pre><CreerPersonne NOM="'.$NOM[$c].'" IP="'.$PRENOM[$c].'" CodeProjet="'.$SEXE[$c].'"></pre>';
echo '<pre><Categorie SU_ID="'.$AGE[$c].'"></pre>';
echo '<pre><Saisie type="ADRESSE_" name="RUE" value="'.$RUE[$c].'"></Saisie></pre>';
echo '<pre><Saisie type="ADRESSE_" name="CODEPOSTAL" value="'.$CODEPOSTAL[$c].'"></Saisie></pre>';
echo '<pre><Saisie type="ADRESSE_" name="VILLE" value="'.$VILLE[$c].'"></Saisie></pre>';
echo '<pre><Saisie type="COMMANDE_" name="ENTREE1" value="'.$ENTREE1[$c].'"></Saisie></pre>';
echo '<pre><Saisie type="COMMANDE_" name="ENTREE2" value="'.$ENTREE2[$c].'"></Saisie></pre>';
echo '<pre></Categorie></pre>';
echo '<pre></CreerPersonne></pre>';
}
fclose($handle);
echo '<pre></root></pre>';
Ce que je souhaite faire, c'est récuperer les valeurs des entetes dans le fichier CSV pour les utiliser comme variable dans le code PHP, je ne suis pas sur d'etre clair... En gros, la valeur de la ligne 1, colonne 1 du fichier CSv est NOM, je veux la transformer en $NOM afin de boulcer et d'éviter de devoir saisir les colonnes supplementaire.
Merci à vous