Parcourir un fichier txt difficile

Résolu/Fermé
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014 - 21 mai 2014 à 16:57
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 22 mai 2014 à 11:27
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
A voir également:

1 réponse

nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 238
21 mai 2014 à 17:15
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
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014
22 mai 2014 à 09:37
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
0
nagashima Messages postés 4280 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 238
22 mai 2014 à 11:27
merci pour l'astuce !
bon dev ;)

naga
0