[PHP] problème lecture / écriture dans un fichier

problème lecture / écriture dans un fichier [PHP] - PHP - Programmation

Marsh Posté le 02-03-2007 à 17:08:30    

Salut,
 
J'ai 14000 lignes avec ce genre de trucs:
 
[ab][f3]
[abacas][f1]
[abacht][b3]
[abairt][b2]
[ábalta][a3]
[abar][f1]
[abartha][a3]
[abhac][f1]
[ábhach][f1]
[ábhacht][b3]
[abhaile][db]
 
Je veux garder uniquement du premier crochet à la fin du premier "mot" (exemple: [abacht)
 
J'ai fais ça.

Code :
  1. $fp = fopen("fichier.txt","r" ); //lecture  
  2. //écriture depuis début du fichier  
  3. $out = fopen("out.txt","w" );
  4. $chaine ='';
  5. while (!feof($fp))
  6. {
  7. //on parcourt toutes les lignes
  8.  while (fgetc($fp) !="]" )
  9.  {
  10.   $chaine.=fgetc($fp);
  11.  }
  12.  $chaine.='\n';
  13.  fputs($out,$chaine);
  14. }
  15. fclose($fp);
  16. fclose($out);


Ca tourne en boucle et ça ne fonctionne pas, ou est ce que j'ai fais une erreur ?
 
Mervi de votre aide !


Message édité par Fused le 02-03-2007 à 17:28:44
Reply

Marsh Posté le 02-03-2007 à 17:08:30   

Reply

Marsh Posté le 02-03-2007 à 17:29:22    

tu utilises deux fois fgetc, donc ton while voit un caractère sur deux

Reply

Marsh Posté le 02-03-2007 à 18:13:37    

Code :
  1. function handle_line($line) {
  2.  return substr($line, 0, strrpos($line, '[') - 1) . PHP_EOL;
  3. }
  4. $lines = file('fichier.txt');
  5. file_put_contents('out.txt', array_map('handle_line', $lines));


Message édité par sielfried le 02-03-2007 à 18:18:51

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-03-2007 à 18:27:23    

dire que ça me prenait 10 fois plus de lignes !
 
j'avais pas pensé à substr, merci !

Reply

Sujets relatifs:

Leave a Replay

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