Bonjour,
Voila sur mon serveur Linux, j'ai un fichier avec une extention csv (file.csv).
ce fichier est generer par un script, une fois generer j'execute un script PHP qui le le fichier et le parse pour pouvoir entrer des information dans une base de donnee.
mon souci est le suivant. prenons un exemple du fichier :
lorsque je le lis avec mon script PHP je fais comme ceci :Ligne 45
Ligne 46
Ligne 47
Ligne 48
seulement a un endroit du fichier et seulement un seul, il me duplique la ligne et je ne sais pas pourquoi. voila ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $file = '/home/file.csv'; $handle = fopen($file, "r"); while (($data = fgets($handle, 1000)) !== FALSE) { echo $data.'<br>'; }
j'ai verifier avec un editeur hexadecimal, et j'ai bien un caractere de nouvelle ligne (code hexa : 0A)[...]
--------------------------
Ligne 45
--------------------------
Ligne 46
--------------------------
Ligne 46
Ligne 47
--------------------------
Ligne 48
--------------------------
[...]
je ne sais pas du tout quoi faire ...
pour info ma version de PHP est la suivante : PHP Version 4.3.9
Voila .. merci d'eclairer ma lanterne
EDIT apres de nouveaux TEST, j'ai utilisé fgetc comme ceci :
et je n'ai plus ma ligne en double. il y a donc bien un caractere de nouvelle ligne. Alors pourquoi fgets ne le detecte pas ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 while (($data = fgetc($handle)) !== FALSE) { if (strtoupper(bin2hex($data)) == '0A') echo $data.'<hr>'; else echo $data; }
Partager