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

  FORUM HardWare.fr
  Programmation
  PHP

  problème pour travailler sur des fichiers textes en PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème pour travailler sur des fichiers textes en PHP

n°2083092
joyk
Posté le 18-06-2011 à 19:46:58  profilanswer
 

Salut,
je voudrais travailler sur des fichiers textes en PHP mais ça démarre mal  :whistle:  
déjà je ne sais pas s'il existe une autre méthode mais moi pour scanner toutes les lignes je voudrais tester chaque ligne jusqu'à tant que la dernière soit égale à ma condition (il faut donc que je connaisse à l'avance la dernière ligne de texte, bizarre comme méthode mais pas grave celle-ci dans mon cas est toujours la même).
le problème c'est que la condition n'est jamais remplie et le script tourne dans le vide.
 
Bon je vous mets un petit exemple ça sera plus clair ...
 
fichier texte :

Code :
  1. coucou
  2. c'est
  3. juste
  4. un
  5. petit
  6. test


 
script php :

Code :
  1. <?php
  2. $monfichier = fopen('test.txt', 'r');
  3. $scanligne = ' ';
  4. $inc = 0;
  5. while($scanligne != 'test'){
  6. $inc++;
  7. $scanligne = fgets($monfichier);
  8. }
  9. echo ' nbr de ligne = ' . $inc .' ';
  10. fclose($monfichier);
  11. ?>

mood
Publicité
Posté le 18-06-2011 à 19:46:58  profilanswer
 

n°2083193
boutlatent
Posté le 19-06-2011 à 20:47:35  profilanswer
 

Certainement les retours de lignes qui sont ton souci.
Utilise un trim sur $scanligne.
 
Tu devrais néanmoins tester également que $scanligne ne vaut pas false (ce qui indique qu'il n'y a plus rien à lire), pour éviter que ta boucle ne tourne indéfiniment.
D'ailleurs un file sur ton fichier aurait été pour ma part plus adéquat.
 

n°2083196
joyk
Posté le 19-06-2011 à 21:09:35  profilanswer
 

Merci de ton aide !
je me suis également servi d'un petit tuto, si ça peut servir : http://www.phpsources.org/tutoriel-fichiers.htm
j'arrive enfin à scanner le fichier texte jusque la dernière ligne.
mais maintenant j'ai un autre problème je n'arrive pas à écrire dans un autre fichier.
voici où j'en suis :
 
fichier texte :

Code :
  1. coucou
  2. c'est
  3. juste
  4. un
  5. petit
  6. test


 
script PHP :

Code :
  1. <?php
  2. $monfichier1 = fopen('test.txt', 'r');
  3. $monfichier2 = fopen('test2.txt', 'w');
  4. $inc = 0;
  5. $tab = file('test.txt');
  6. $nb = count($tab);
  7. while($inc < $nb){
  8. $scanligne = $tab[$inc];
  9. $inc++;
  10. if($scanligne == 'petit'){
  11. fputs($monfichier2, 'hello');
  12. }
  13. }
  14. fclose($monfichier1);
  15. fclose($monfichier2);
  16. ?>


Message édité par joyk le 19-06-2011 à 21:12:40
n°2083198
boutlatent
Posté le 19-06-2011 à 21:30:16  profilanswer
 

Pas d'erreur retournée ?
Utilise foreach() qui est justement fait pour la lecture d'array.
 

Code :
  1. <?php
  2. $monfichier2 = fopen('test2.txt', 'w');
  3. $tab = file('test.txt');
  4. foreach( $tab as $line )
  5. {
  6.    if( trim($line) == 'petit' )
  7.    {
  8.       fputs($monfichier2, 'hello');
  9.       break;
  10.    }
  11. }
  12. ?>

n°2083233
joyk
Posté le 20-06-2011 à 00:02:48  profilanswer
 

youhou ça fonctionne ! merci beaucoup pour ton aide :-)
par contre j'ai de nouveau un petit souci sur lequel je bloque.
imagine que dans le fichier texte il y as plusieurs ligne "petit", comment je peux faire pour que le mot "hello" soit écrit sur une nouvelle ligne à chaque fois ? la pour le moment les mots "hello" sont collés les uns aux autres sur la première ligne. J'ai essayé avec "\n" à la fin mais ça ne fonctionne pas. Tu as une idée ?

n°2083381
Paulp
~, sweet ~
Posté le 20-06-2011 à 15:04:23  profilanswer
 

\n ne marche pas dans les single quotes ', mais dans les double quotes "

n°2083391
joyk
Posté le 20-06-2011 à 16:10:41  profilanswer
 

j'ai trouvé en fait c'est juste le bloc-note qui n'affiche pas les retours à la ligne ... voilà comment on perd des heures pour rien :\\
Personne a une astuce pour que l'affichage soit bon dans le bloc-note ?

n°2083399
Paulp
~, sweet ~
Posté le 20-06-2011 à 16:25:55  profilanswer
 

il faut mettre \r\n

n°2083410
Dj YeLL
$question = $to_be || !$to_be;
Posté le 20-06-2011 à 16:57:29  profilanswer
 

Utilise

Code :
  1. file('monfichier.txt');

pour la lecture, au lieu de t'emmerder avec tout ton bordel :o


Message édité par Dj YeLL le 20-06-2011 à 16:57:46

---------------
Gamertag: CoteBlack YeLL
n°2083412
joyk
Posté le 20-06-2011 à 16:58:04  profilanswer
 

c'est bon ça marche, merci !
je touche presque au but de ce que je désire faire, mais maintenant j'ai le problème inverses  :D  
je dois mettre des points virgules ";" à la fin de mes phrases mais ceux ci passent à la ligne sans que j'en fasse la demande ...
tu sais pourquoi ?
 
exp :  
 

Code :
  1. fputs($variable1, "montexte $variable2;\r\n" );


 
et ça donne dans le fichier texte :
 

Code :
  1. montexte texte de la variable2
  2. ;


mood
Publicité
Posté le 20-06-2011 à 16:58:04  profilanswer
 

n°2083413
Paulp
~, sweet ~
Posté le 20-06-2011 à 16:59:40  profilanswer
 

Il y a probablement un retour à la ligne dans $variable2

n°2083417
joyk
Posté le 20-06-2011 à 17:07:40  profilanswer
 

hehe trop fort, merci encore :-)
je croyais que c'était une histoire d'antislash ou je ne sais quoi.


Message édité par joyk le 20-06-2011 à 17:38:11

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

  problème pour travailler sur des fichiers textes en PHP

 

Sujets relatifs
CouchDB-app problème uploadingProblème programme calculatriceTI-89 T
problème (opérateur manquant) dans Requete SQL sous Excel VBAPHP débutant, envoi de mails dynamiquement
Formulaire PHP fonctionne avec FF pas avec IE[PHP/MYSQL] Insérer/modifier des données
[resolu] Envoi des données par PHP après vérification Ajaxtableau PHP multi dimenssion avec indice [RESOLU]
Mssql / Php : module spécifié introuvableProblème de requete SQL
Plus de sujets relatifs à : problème pour travailler sur des fichiers textes en PHP


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