[retours charriots] - importer .txt + php

shaman_yaqui Messages postés 2 Statut Membre -  
shaman_yaqui Messages postés 2 Statut Membre -
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 783 Statut Membre 211
 
<?
$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 Statut Membre
 
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