Parcourir un fichier txt difficile

[Résolu/Fermé]
Signaler
Messages postés
10
Date d'inscription
mardi 13 mai 2014
Statut
Membre
Dernière intervention
4 juillet 2014
-
Messages postés
4270
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
-
Bonjour,

Je suis en train de traiter un fichier txt en php. ce fichier est une base de données de 15Mo. Il est actuellement un tableau: les éléments sont séparés par espèce ou tab. voici quelques lignes de ce fichier:

VERSION 7 // ligne1
NUM_JDD 1065 //ligne2
DEPART 316.0.41479927.CT BELCAYRE ACR NIME -1 -1 -1 NULL NULL 0 2 0 NULL //ligne3
TRONCON 316.0.41479927.CT //ligne4 et suivant.....

lorsque je l'ouvre par blocnotes, c'est comme
VERSION 7 NUM_JDD 1065DEPART 316.0.41479927.CT BELCAYRE ACR NIME -1 -1 -1 NULL NULL 0 2 0 NULLTRONCON 316.0.41479927.CT

Lorsqu'on change une ligne, c'est qu'il n'y a pas d'espèce.

en php, j'ai besoin de traiter ce fichier pour récupérer les valeurs de chaque ligne (fgets par exemple), mais, lorsque j'utilise fgets, il récupère tout le fichier :( comment est-ce que je peux le met à la ligne? ou bien, comment est-ce que je peux écrire mon php pour récupérer les valeurs de chaque ligne?

merci

1 réponse

Messages postés
4270
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
220
salut,

le problème que tu as c'est que ta fin de ligne n'est que '\n' ou '\r', et non '\r\n' .

C'est à dire que pour découper ligne à ligne, il faut que tu découpe en fonction du caractère séparateur (dans le pire des cas test les deux).
ensuite tu pourra traiter normalement tes lignes.

je te conseil de lire caractère par caractère avec fgets afin de retourner une ligne où tu pourra paramétrer le délimiteur de ligne.


naga
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
10
Date d'inscription
mardi 13 mai 2014
Statut
Membre
Dernière intervention
4 juillet 2014

Je crois que tu as bien raison. En effet, j'ai trouvé une solution plus simple, c'est de rajouter la ligne:
ini_set("auto_detect_line_endings",true);

merci beaucoup
kanzory
Messages postés
4270
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
4 mars 2021
220
merci pour l'astuce !
bon dev ;)

naga