Parser un fichier Texte
Résolu/Fermé
Seiken02
-
16 juil. 2008 à 16:29
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 - 17 juil. 2008 à 17:05
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 - 17 juil. 2008 à 17:05
A voir également:
- Parser un fichier Texte
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
5 réponses
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
17 juil. 2008 à 12:17
17 juil. 2008 à 12:17
Ben tu récupères d'abord les lignes, puis sur chaque ligne tu récupères les colonnes... Tu fais juste un traitement différents sur la première ligne pour récupérer les noms de colonnes que tu stockes dans un tableau par exemple...
Je n'ai pas testé ce bout de code, mais ça va te permettre de stocker dans résult[nomLigneX][nomColonneY] la donnée situé à la ligne X, colonne Y...
$contents = stream_get_contents($fileHanlder); $result = array(); // On sépare les lignes $lignes = split("\n", $contents); // pour la première ligne, on récupère les nom des colonnes $noms = split(";", $lignes[0]); // On n'a plus besoin de la première ligne, on la dégage... unset($lignes[0]); // Maintenant, on s'occupe de chaque ligne foreach($lignes as $ligne){ $cols = $split(";", $ligne); foreach($cols as $index => $col){ $result[$cols[0]][$noms[index]] = $col; } }
Je n'ai pas testé ce bout de code, mais ça va te permettre de stocker dans résult[nomLigneX][nomColonneY] la donnée situé à la ligne X, colonne Y...
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
16 juil. 2008 à 17:18
16 juil. 2008 à 17:18
Tu peux aller voir ici pour te donner une idée... http://www.commentcamarche.net/forum/affich 7418300 obtenir lignes d un fichier en php
Après, la solution sera peut-être limitée par la taille de ton fichier... Je sais que pour moi, ça fonctionne pour des fichiers .txt du plusieurs méga, alors je suppose que pour un fichier Excel ça devrait passer....
Après, la solution sera peut-être limitée par la taille de ton fichier... Je sais que pour moi, ça fonctionne pour des fichiers .txt du plusieurs méga, alors je suppose que pour un fichier Excel ça devrait passer....
Je travail également sur un fichier texte.
J'ai déjà était voir ce lien, mais ça ne récupère que les lignes.
Ce n'est pas vraiment ce que je veux :s
J'ai déjà était voir ce lien, mais ça ne récupère que les lignes.
Ce n'est pas vraiment ce que je veux :s
J'ai tester ce bout de code,lorsque je fais un echo de
echo $result[$cols[0]][$noms[0]];
pour vérifier le résultat, ça m'écrit le résultat de la dernière ligne mais bien de la première colonne (0).
echo $result[$cols[0]][$noms[0]];
pour vérifier le résultat, ça m'écrit le résultat de la dernière ligne mais bien de la première colonne (0).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
17 juil. 2008 à 17:05
17 juil. 2008 à 17:05
Oui c'est normal. J'ai mis du temps à capter pourquoi... Si tu fais ça à la fin du script, comme cols[0] contient encore le nom de ta dernière ligne, il t'affiche donc l'élement situé à la dernière ligne, colonne 0.
Pour vérifier si tout s'est bien passé, fait un print_r($result) (attention, seulement sur un petit tableau sinon ça va être vraiment horrible ^^). Normalement il devrait t'afficher un truc du genre:
Array( [nomLigne1] => Array([nomColonne1] => valeur (1;1), etc...))
Si tu veux parcourir ton tableau résultat, tu peux faire deux foreach() imbriqué :
Pour vérifier si tout s'est bien passé, fait un print_r($result) (attention, seulement sur un petit tableau sinon ça va être vraiment horrible ^^). Normalement il devrait t'afficher un truc du genre:
Array( [nomLigne1] => Array([nomColonne1] => valeur (1;1), etc...))
Si tu veux parcourir ton tableau résultat, tu peux faire deux foreach() imbriqué :
foreach($result as $nomLigne => $temp) { foreach($temp as $nomColonne => $valeur){ // Traitement.... } }