Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1725 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  supprimer une ligne vide [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

supprimer une ligne vide [résolu]

n°1298469
bensti
Posté le 03-02-2006 à 12:59:48  profilanswer
 

Salut! j'importe un fichier texte dans une base sql via une routine php, cependant quand les fichiers ont une ligne vide en fin de fichier, j'ai une entrée vide dans ma base. Comment je peux procéder pour supprimer les lignes vides? Merci de vos réponses...


Message édité par bensti le 03-02-2006 à 14:02:21
mood
Publicité
Posté le 03-02-2006 à 12:59:48  profilanswer
 

n°1298487
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-02-2006 à 13:23:55  profilanswer
 

Utilise strlen pour tester la longueur de la chaine avant de faire ton insert...

n°1298497
bensti
Posté le 03-02-2006 à 13:32:29  profilanswer
 

oui mais l'insert (le fichier) est variable. Comment detecter la ligne vide et la supprimer juste en retournant la taille de la chaine?

n°1298506
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-02-2006 à 13:38:48  profilanswer
 

tu peux montrer le bout de code qui lit le fichier?

n°1298512
bensti
Posté le 03-02-2006 à 13:41:46  profilanswer
 

if (file_exists($file))
     $fp = fopen("$file", "r" );  
 else
     {  
       echo "<DIV CLASS=\"error\">Fichier introuvable !<br>Importation stoppée.</DIV>";
       exit();
     }
     
     while (!feof($fp))  
    {  
       $ligne = fgets($fp,4096);  
     
   
       $liste = explode( ",",$ligne);
    $liste1 = str_replace("\r", "",$liste);
    $liste2= str_replace("\"", "",$liste1);
         
                   
     
       $nom = $liste2[0];  
       $mail = $liste2[1];  
     
     
       $query = "INSERT INTO $table VALUES('$nom','$mail')";  
       $result= MYSQL_QUERY($query);


Message édité par bensti le 03-02-2006 à 13:42:36
n°1298518
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-02-2006 à 13:49:21  profilanswer
 

Bin en super simple:

Code :
  1. while (!feof($fp)) 
  2.      $ligne = fgets($fp,4096); 
  3.      if(strlen($ligne)){
  4.      ... le reste ...
  5.      }
  6. }

n°1298522
bensti
Posté le 03-02-2006 à 13:53:21  profilanswer
 

t'es puissant mec! peux tu m'expliquer? en effet sur le manuel php srtlen est là pour conter les caractères.
 
 
MERCI MERCI en tous cas! :jap:

Message cité 1 fois
Message édité par bensti le 03-02-2006 à 13:53:38
n°1298530
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-02-2006 à 14:00:02  profilanswer
 

bensti a écrit :

t'es puissant mec! peux tu m'expliquer? en effet sur le manuel php srtlen est là pour conter les caractères.


 [:pingouino]  
 
Bin strlen "compte" le nombre de caractères, si y'en a pas ça retourne 0 et le if foire ...

n°1298533
bensti
Posté le 03-02-2006 à 14:02:05  profilanswer
 

ah ok! il compre les caractères par ligne. j'avais pas vu comme ça si y'en à 0. En effet c'est logique. on peut mettre résolu.
 
P.S:désolé pour "compte".

n°1298549
omega2
Posté le 03-02-2006 à 14:22:14  profilanswer
 

Attention, si tu ne veux pas de ligne "visiblement vide", il faut compter le nombre de caractére sans tenir compte des espaces et caractéres assimilés se trouvant en début et fin de ligne.
 
Pour ça, la fonction trim est utile vu qu'elle retourne la chaine donnée aprés en avoir enlevé ces caractéres.
 

Code :
  1. while (!feof($fp))  {
  2.        $ligne = fgets($fp,4096);
  3.        if(strlen(trim($ligne))){
  4.      ... le reste ...   
  5.        }
  6. }

permet donc de ne pas insérer entre autre les lignes ne contenant que des espaces et des tabulations.


Message édité par omega2 le 03-02-2006 à 14:22:40
mood
Publicité
Posté le 03-02-2006 à 14:22:14  profilanswer
 

n°1298562
bensti
Posté le 03-02-2006 à 14:34:03  profilanswer
 

ok!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  supprimer une ligne vide [résolu]

 

Sujets relatifs
tester un champ vide[Résolu] Procedure Stockée : selection d'une autre base impossible
Boucle avec chaine vide : je comprends pas[RESOLU]div invisible ???
Shell unix : caractère saut de ligne à supprimerVBS...lecture ligne à ligne
/RESOLU/ problème avec switch... loleviter passage à la ligne avec print
[Apache] pb en tant que service (Résolu) 
Plus de sujets relatifs à : supprimer une ligne vide [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR