Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/04/2007, 10h46   #1
Membre du Club
 
Inscription : novembre 2005
Messages : 170
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 170
Points : 53
Points : 53
Par défaut lecture/écriture dans un fichier

Salut,

j'essaye de parcourir un fichier de remplacer certaines parties du texte. Voici comment je fais :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
$handle  = fopen('static/'.$file,'rb+');
if($handle  <> null) {
    while( !feof( $handle  ) ){
	$beginingOfLine = ftell($handle);
	$line = fgets($handle);
 
	if(strpos($line,'toto') !== false){
   	     echo "toto est present <br>";
 
   	     $line = str_replace("toto","tata",$line);
 	     fseek($handle, $beginingOfLine);
	     if (fwrite($handle,$line) === FALSE) {
		  echo "Cannot write to file to static file : static/".$file;
		  exit;
	     }
	}	
    }
}
le remplacement des occurences de toto se fait bien mais le problème est que le début de la ligne suivante se retrouve rognée. j'imagine que j'ai un pb de positon du $handle mais je trouve pas...
merci d'avance
benkunz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h30   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Est-ce qu'il y a une bonne raison de ne pas lire entièrement le fichier en mémoire, de faire le remplacement, et de récrire le fichier ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h31   #3
Membre du Club
 
Inscription : novembre 2005
Messages : 170
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 170
Points : 53
Points : 53
non pas vraiment, j'etais justement en train de m'orienter vers cette solution qui est tout de suite beaucoup plus simple.
benkunz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 11h35   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
En php4:
Code :
1
2
3
4
5
6
<?php
$s = str_replace('toto', 'tata', file_get_contents('test.txt'));
$f = fopen('test.txt', 'w');
fwrite($f, $s);
fclose($f);
?>
En php5 (non testé):
Code :
1
2
3
<?php
file_put_contents('test.txt', str_replace('toto', 'tata', file_get_contents('test.txt')));
?>
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h57.


 
 
 
 
Partenaires

Hébergement Web