Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/02/2008, 09h17   #1
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 164
Points : 37
Points : 37
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 :
$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 :
1
2
3
4
5
6
7
 
$j = count($ligne);  	
 
for ($i = 0; $i < $j; $i++)
{
  echo $ligne[$i];
}
Merci
mcdelay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 09h42   #2
Membre habitué
 
Avatar de bartrik
 
Inscription : novembre 2003
Messages : 105
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 105
Points : 111
Points : 111
Bjr,

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

Code :
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
bartrik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 10h04   #3
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 164
Points : 37
Points : 37
Merci, javais deja vu cette exemple. Mais count($ligne) me retourne 2 alors que ma ligne est de ce type :

Code :
0;0;0;0;0;0;0;0;0;1;2;3;
Si j'enleve ";" dans la fonction fgetcvs alors count retourne 1....
mcdelay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 10h14   #4
Membre habitué
 
Avatar de bartrik
 
Inscription : novembre 2003
Messages : 105
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 105
Points : 111
Points : 111
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 :
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...
bartrik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h01   #5
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 164
Points : 37
Points : 37
ok, je te donne le fichiers entier que j'utilise :

Code :
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 :
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)
mcdelay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h36   #6
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 164
Points : 37
Points : 37
..desole en fait ca marche...! mais je ne comprenais pas pourquoi mon premier code ne fonctionnait pas..

Merci
mcdelay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h17.


 
 
 
 
Partenaires

Hébergement Web