IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Comment isoler les différents champs


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut [CSV] Comment isoler les différents champs
    Salut à tous,

    je souhaite lire un fichier csv. J'ai utilisé pour ce faire le tuto de ce site:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    <?php
    $file = "http://www.zemanga.com/affilies/export/export.csv";
    $taille = 1024;
    $delimiteur = ";";
    /* ouverture en lecture */
    if($fp = fopen($file,"r")) {
        /* extraction d'une ligne */
        while ($ligne = fgetcsv($fp, $taille, $delimiteur)) {
            /* affichage des champs */
            foreach($ligne as $elem) {
               // echo "$elem<br/>";
    			echo $elem[1].'<br>';
            }
        }
        /* fermeture fichier */
        fclose ($fp);
    } else {
        echo "Ouverture impossible.";
    }
    ?>
    J'ai une structure CSV comme celle ci:
    'ID';'NOM';'FAMILLE';'SOUSTITRE';'PRIXPUBLICTTC';'PRIXTTC';'PRIXHT';'FORMAT';........
    119;Hakkenden - coffret intégral 3 DVD;Hakkenden;;59.95;38.99;32.6;....
    Je souhaiterais récupérer chacun de ces champs dans un tableau.

    Par exmeple je voudrais des tableaux comme ceci:

    id[]
    Nom[]
    Famille[]
    ...

    et chacun des tableaux contiendrais les valeurs respectives.

    Avez vous une idée sur la manière de procéder?


    Merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Salut,

    Avant tout, $ligne est un tableau, mais pourquoi (d'après ton code) $elem en serait un?
    Sinon, si tu connais la structure de ton fichier CSV, je regarderai les clés du foreach() et en fonction de celles-ci je prendrai l'info correspondante:
    0 => ID
    1 =>NOM etc...

    Ca donnerait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($ligne as $key => $elem) {
       switch($key) {
          case 0: $arrayID[] = $elem;
          case 1: $arrayNOM[] = $elem;
          case 2: $arrayFAMILLE[] = $elem;
          # Etc...
       }
    }

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Je dirais que pour chaque ligne tu fais un explode et tu stockes dans ton tableau

    je l'ai fait le mois dernier et ca focntionnait super bien

    [Edit] Allez un petit exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    $file = "http://www.zemanga.com/affilies/export/export.csv";
    $taille = 1024;
    $delimiteur = ";";
    /* ouverture en lecture */
    if($fp = fopen($file,"r")) {
        /* extraction d'une ligne */
        while ($ligne = fgetcsv($fp, $taille, $delimiteur)) {
            /* affichage des champs */
            foreach($ligne as $elem) {
               $elt = explode(';',$elem);
               $id[] = $elt[0];
               $Nom[] = $elt[1];
               $Famille[] = $elt[2];
               ...........
            }
        }
        /* fermeture fichier */
        fclose ($fp);
    } else {
        echo "Ouverture impossible.";
    }
    ?>

  4. #4
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Merci je vais essayer ca, je vous tiens au courant.

  5. #5
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Finalement j'ai opté pour cette forme et ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    //$file = "test.csv";
    $file = "http://www.zemanga.com/affilies/export/export.csv";
     
    $taille = 1024*4;
    $delimiteur = ";";
    if($fp = fopen($file,"r")) {
        while ($ligne = fgetcsv($fp, $taille, $delimiteur)) 
    	{
    		$tableid[]=$ligne[0];
    		$tablenom[]=$ligne[1];
             }
    }
    Merci ^^.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récuperer les différentes lignes d'une requête ?
    Par frikazoide dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/01/2007, 08h33
  2. Réponses: 2
    Dernier message: 04/05/2006, 13h10
  3. [PEAR][HTML_QuickForm] Comment séparer les différents champs ?
    Par mohican13 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 17/02/2006, 08h21
  4. Réponses: 2
    Dernier message: 18/08/2005, 12h42
  5. Réponses: 3
    Dernier message: 24/05/2005, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo