comment effacer dynamiquement une ligne vide sur un fichier ?

comment effacer dynamiquement une ligne vide sur un fichier ? - PHP - Programmation

Marsh Posté le 16-10-2006 à 21:15:42    

bonjour,
 
j'ai un fichier .txt deposé automatiquement sur un serveur à traiter => je veux y acceder uniquement depuis un script PHP lancé en distant.
 
Je traite chaque ligne du fichier ainsi :

Code :
  1. if (file_exists($filename))
  2. {
  3. $lignes = file($filename);
  4. foreach ($lignes as $ligne_num => $ligne)
  5. {
  6.               bla-bla-traitement de la ligne
  7.         }
  8. }


 
 
 
Mon pb est qu'il comporte parfois des lignes vides que je voudrais detecter, pour les eliminer du traitement en boucle des lignes (avec un continue; par exemple)... mais je n'arrive pas a les detecter, ces fichus lignes vides  :pt1cable:  
Elles ne sont considéres ni commes vides ni comme inexistantes  
 
Quelqu'un aurait une idée ?
 
Merci  :jap:

Reply

Marsh Posté le 16-10-2006 à 21:15:42   

Reply

Marsh Posté le 16-10-2006 à 21:16:33    

if($ligne =="" )
   continue;
 
ou if(strlen($ligne) ==0)
   continue;

Reply

Marsh Posté le 16-10-2006 à 21:23:22    

nan, justement, les 2 solutions ne marchent pas ;'(
 
Merci qd meme de ta reponse rapide :)

Reply

Marsh Posté le 16-10-2006 à 21:25:25    

lesl ignes "vides" ne serait elle pas des lignes remplies d'espace ?  
tu as essayer de faire afficher le nb de carcatère de chaque ligne  ?

Reply

Marsh Posté le 16-10-2006 à 21:45:31    

Attention, dans un fichier, une ligne vide dans le sens "pas de caractères" n'est pas forcément vide, si la ligne est juste constituée d'un saut de ligne, le saut de ligne en lui-même rend la ligne non vide.
 
Tu as tenté un rtrim de la ligne avant les tests proposés par flo850 ?

Reply

Marsh Posté le 16-10-2006 à 22:34:19    

naceroth a écrit :

Attention, dans un fichier, une ligne vide dans le sens "pas de caractères" n'est pas forcément vide, si la ligne est juste constituée d'un saut de ligne, le saut de ligne en lui-même rend la ligne non vide.
 
Tu as tenté un rtrim de la ligne avant les tests proposés par flo850 ?


 
naceroth tu es un genie !!!  je n'avais pas pensé au rtrim  [:alex_]  
 
du coup  
 

Citation :

if(strlen(rtim($ligne) == 0))
   continue;


 
et hop ca marche !
MERCI +++    [:acherpy]  
 
 

Reply

Sujets relatifs:

Leave a Replay

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