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] fonction fgetcsv, récupération des éléments


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut [CSV] fonction fgetcsv, récupération des éléments
    Bonjour,

    J'utilise la fonction fgetcsv afin de lire un fiher .csv (normal !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne = fgetcsv($fic, 1024,";");
    Comment fait on par la suite pour recuperer chaque element se trouvant entre chaque separateur (le point virgule) ?

    Je pensais qu'en bouclant sur les elements de $ligne cela aurait pu etre possible mais apparemment ca ne parche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $j = count($ligne);  	
     
    for ($i = 0; $i < $j; $i++)
    {
      echo $ligne[$i];
    }
    Merci

  2. #2
    Membre éprouvé Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Par défaut
    Bjr,

    extrait de
    http://fr.php.net/manual/fr/function.fgetcsv.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $row = 1;
    $handle = fopen("test.csv", "r");
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
    ?>
    et il y a d'autres exemples
    Un lien a mettre dans tes
    1. signets,
    2. marque-pages,
    3. favoris

    (1) rayer la mention inutile

  3. #3
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Merci, javais deja vu cette exemple. Mais count($ligne) me retourne 2 alors que ma ligne est de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0;0;0;0;0;0;0;0;0;1;2;3;
    Si j'enleve ";" dans la fonction fgetcvs alors count retourne 1....

  4. #4
    Membre éprouvé Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Par défaut
    Je viens de prendre le code que je t'ai donnée, j'ai remplacé le ',' par ';' a la ligne 4, créé un fichier test.csv avec tes valeurs (0;0;0;0;0;0;0;0;0;1;2;3
    et le résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     13 fields in line 1:
    0
    0
    0
    0
    0
    0
    0
    0
    0
    1
    2
    3
    Je peux pas faire mieux...

  5. #5
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    ok, je te donne le fichiers entier que j'utilise :

    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
    24
     00-01 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     01-02 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     02-03 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     03-04 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     04-05 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     05-06 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     06-07 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     07-08 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     08-09 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     09-10 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     10-11 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     11-12 ;0;0;1;9;11;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;23
     12-13 ;0;0;2;38;46;13;5;0;1;0;0;0;0;0;0;0;0;0;0;0;105
     13-14 ;0;0;2;42;69;18;3;1;0;0;0;0;0;0;0;0;0;0;0;0;135
     14-15 ;0;0;1;31;51;12;2;0;0;0;0;0;0;0;0;0;0;0;0;0;97
     15-16 ;0;0;3;48;45;11;2;0;0;0;0;0;0;0;0;0;0;0;0;0;109
     16-17 ;0;0;1;47;57;14;1;0;0;0;0;0;0;0;0;0;0;0;0;0;120
     17-18 ;0;0;1;71;72;10;2;0;0;0;0;0;0;0;0;0;0;0;0;0;156
     18-19 ;0;0;1;62;63;13;0;0;0;0;0;0;0;0;0;0;0;0;0;0;139
     19-20 ;0;0;0;16;21;2;2;0;0;0;0;0;0;0;0;0;0;0;0;0;41
     20-21 ;0;0;0;13;27;5;0;0;0;0;0;0;0;0;0;0;0;0;0;0;45
     21-22 ;0;0;1;5;14;7;0;0;0;0;0;0;0;0;0;0;0;0;0;0;27
     22-23 ;0;0;0;5;6;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;13
     23-24 ;0;0;0;5;3;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;9
    Et voici ce que me donne ta fonction ( que j'ai repris integralement) :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    1 fields in line 1: 
     
     
    00-01 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 2: 
     
     
    01-02 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 3: 
     
     
    02-03 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 4: 
     
     
    03-04 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 5: 
     
     
    04-05 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 6: 
     
     
    05-06 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 7: 
     
     
    06-07 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 8: 
     
     
    07-08 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 9: 
     
     
    08-09 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 10: 
     
     
    09-10 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 11: 
     
     
    10-11 ;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
     
    1 fields in line 12: 
     
     
    11-12 ;0;0;1;9;11;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;23
     
    1 fields in line 13: 
     
     
    12-13 ;0;0;2;38;46;13;5;0;1;0;0;0;0;0;0;0;0;0;0;0;105
     
    1 fields in line 14: 
     
     
    13-14 ;0;0;2;42;69;18;3;1;0;0;0;0;0;0;0;0;0;0;0;0;135
     
    1 fields in line 15: 
     
     
    14-15 ;0;0;1;31;51;12;2;0;0;0;0;0;0;0;0;0;0;0;0;0;97
     
    1 fields in line 16: 
     
     
    15-16 ;0;0;3;48;45;11;2;0;0;0;0;0;0;0;0;0;0;0;0;0;109
     
    1 fields in line 17: 
     
     
    16-17 ;0;0;1;47;57;14;1;0;0;0;0;0;0;0;0;0;0;0;0;0;120
     
    1 fields in line 18: 
     
     
    17-18 ;0;0;1;71;72;10;2;0;0;0;0;0;0;0;0;0;0;0;0;0;156
     
    1 fields in line 19: 
     
     
    18-19 ;0;0;1;62;63;13;0;0;0;0;0;0;0;0;0;0;0;0;0;0;139
     
    1 fields in line 20: 
     
     
    19-20 ;0;0;0;16;21;2;2;0;0;0;0;0;0;0;0;0;0;0;0;0;41
     
    1 fields in line 21: 
     
     
    20-21 ;0;0;0;13;27;5;0;0;0;0;0;0;0;0;0;0;0;0;0;0;45
     
    1 fields in line 22: 
     
     
    21-22 ;0;0;1;5;14;7;0;0;0;0;0;0;0;0;0;0;0;0;0;0;27
     
    1 fields in line 23: 
     
     
    22-23 ;0;0;0;5;6;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;13
     
    1 fields in line 24: 
     
     
    23-24 ;0;0;0;5;3;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;9
    En fait moi ce que je voudrais ce qu'il me separe tous les elments entre les ; mais je pense que tu avais compris (ici les 22 elements de chaque ligne)

  6. #6
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    ..desole en fait ca marche...! mais je ne comprenais pas pourquoi mon premier code ne fonctionnait pas..

    Merci

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

Discussions similaires

  1. Fonction de jointure des éléments de liste
    Par étoile de mer dans le forum Débuter
    Réponses: 4
    Dernier message: 18/07/2008, 17h16
  2. Réponses: 6
    Dernier message: 19/05/2008, 15h39
  3. Réponses: 0
    Dernier message: 02/04/2008, 09h28
  4. [CSV] fonction fgetcsv : bug?!
    Par haltabush dans le forum Langage
    Réponses: 10
    Dernier message: 15/03/2007, 15h48
  5. Récupération des éléments d'un fichier xml en flux retour
    Par opeo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 07/11/2005, 10h33

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