[php] Probleme d'espace (le caractere) [Résolu]

Probleme d'espace (le caractere) [Résolu] [php] - PHP - Programmation

Marsh Posté le 14-05-2004 à 10:51:18    

Bonjour,
j'ai un problème en php lors de la lecture d'un fichier.
J'utilise la fonction File (qui me lit donc mes infos ligne par ligne)
Le probleme est que un caractere espace est rajouté à la fin de ce qui est réellement écrit dans le fichier (pas d'espace dans le fichier évidemment, juste un saut de ligne)
Le fichier devrait être généré automatiquement mais la c moi qui l'ai écrit pour les tests (je précise que je suis sous windows).
 
Il semblerait que la fonction file interprete le saut de ligne comme un espace et un saut de ligne...
 

Code :
  1. $res_lect = file($nom_fichier);
  2. $max = count($res_lect);
  3. for ($i = 0; $i < $max; $i++)
  4. {echo $res_lect[$i];}


 
Y a t il un moyen d'éviter ces espaces?
 
Merci


Message édité par hop le fou le 14-05-2004 à 14:17:52
Reply

Marsh Posté le 14-05-2004 à 10:51:18   

Reply

Marsh Posté le 14-05-2004 à 10:58:30    

je crois que c'est un bug connu de la fonction sous Windows. essaie d'utiliser  
 
http://php.net/fopen
http://php.net/fgets
http://php.net/fclose
 

Code :
  1. <?php
  2.   $fd = fopen ("/tmp/inputfile.txt", "r" );
  3.   while (!feof ($fd)) {
  4.    $buffer = fgets($fd, 4096);
  5.    echo $buffer;
  6.   }
  7.   fclose ($fd);
  8. ?>


Message édité par jagstang le 14-05-2004 à 10:59:20
Reply

Marsh Posté le 14-05-2004 à 11:01:33    

Sous windows, un fichier contenant un saut de ligne contient 2 caractères : 0x13 (CR ou \r) et 0x10 (LF ou \n)
 
Comme indiqué dans la doc de la fonction file(), cette dernière inclue les sauts de lignes dans les cellules du tableau.
 
D'autre part, un saut de ligne est interpreté comme un espace en HTML
 
Donc pour enlever les saut de lignes, faire comme indiqué dans la doc, utilises rtrim().

Reply

Marsh Posté le 14-05-2004 à 14:17:39    

J'ai changé de fonction et je n'ai pas mis de saut de ligne
Donc maintenant ca marche.
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed