[retours charriots] - importer .txt + php

Fermé
shaman_yaqui Messages postés 2 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 9 août 2007 - 8 août 2007 à 18:21
shaman_yaqui Messages postés 2 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 15:01
Bonjour à tous,

Je rencontre un problème assez currieux lorsque j'essaie d'ouvrir et de manipuler un fichier .txt en php.

Ce fichier "export.txt", dont les champs sont séparés par des tabulations, est extrait depuis une appli de bureau sous MAC au format "Windows".

Lorsque j'envois le fichier sur mon serveur via le client FTP natif de dreamweaver et que je mets son contenu ds un tableau avec la fonction file() je récupère bien les 125 lignes de mon fichier initial et je peux exploiter les données ss problème.

En revanche, pour une raison que j'ignore, lorsque je l'upload [en binaire] via un client ftp classique [filezilla] , les sauts de ligne disparraissaient étrangement au moment du transfert et je n'ai plus qu'une seule ligne contenant l'intégralité des données...

Il semblerait donc qu'il y ait un souci ds la construction du fichier et en particulier au niveau des sauts de lignes.

J'ai donc essayé de bidouiller mon script d'import de sorte à transformer les caractères non reconnu et pouvoir découper mon fichier en 125 lignes distinctes :

$content = str_replace(chr(13), "\n", $content);

for($i=0 ; $i<sizeof($content) ; $i++)
{
$line = explode("\n", $content[$i]);
$field = explode("\t", $line);

$id = $field[0];
etc ...

/* traitement */

}

Cela ne donne rien, à partir du moment où je l'envoi ac un autre client FTP que celui de dw, je ne parviens pas à découper mon fichier convenablement.

Voilà pour les explications, j'espère avoir été assez clair.

Je suis bloqué sur ce problème depuis plusieurs jours et je dois certainement passer à coté d'un truc que je n'ai pas vu...

Quelqu'un aurait-il une idée svp ?

Merci d'avance pour vos réponses.

Bonne soirée.
A voir également:

1 réponse

Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 211
9 août 2007 à 14:24
<?
$fp = fopen("myfile.txt", "r");
while (!feof($fp)) {
   $line = fgets($fp);
   $field = explode("\t", $line);
}
fclose($fp);
?>


Je pense que comme sa tu n'aura pas de problème de ligne, sinon via file() je vois pas trop pour ton probleme.
0
shaman_yaqui Messages postés 2 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 15:01
Merci pour ta réponse Tiller.

Je viens d'essayer ac ta méthode mais il semble vraiment que le problème se situe en amont.

Lorsque j'envoi mon fichier ac Filezilla, les lignes sont découpées de manière complétement anarchique [en plein milieu des mots parfois] ... alors que lorsque je l'envoi ac dw le problème ne se présente pas.

C'est donc bien la preuve que le fichier est "modifié" lors du transfert, j'ai beau l'envoyer en binaire afin que le fichier reste "intacte" et non en ASCII mais ça ne change rien ... il y a probablement une option qui provoque cette transformation mais pour le moment je ne vois pas laquelle.

Je vais continuer à chercher ds cette voie là ...

Merci encore.
0