[PHP] remplacer une chaine de caractères dans un .ini [resolu]

remplacer une chaine de caractères dans un .ini [resolu] [PHP] - PHP - Programmation

Marsh Posté le 17-10-2002 à 22:37:18    

Bonjour,
 
voilà j'expose brièvement mon pb :
 
donc je desire modifié une ligne par une autre dans un .ini (cette ligne peut y etre plusieurs fois)
 

Code :
  1. //modifie les valeurs d'upload de groups.ini
  2. $fp = fopen("c:\\program files\\g6 ftp server\\groups.ini", "r+" );
  3. while (!feof($fp)){
  4. $buffer = fgets($fp, 4096);
  5. $valid=eregi("MaxSpeedRcv=5000",$buffer);
  6. if ($valid){
  7. $buffer = eregi_replace('MaxSpeedRcv=5000','MaxSpeedRcv=16000',$buffer);
  8. fputs($fp,"$buffer",4096);
  9. }
  10. }


 
voilà donc ça cherche la chaine 'MaxSpeedRcv=5000' et si ça la trouve ça la remple par celle ci : 'MaxSpeedRcv=16000'
 
le pb c'est que ça me modifie pas mon .ini alors qu'il trouve bien les chaines et qu'il met bien la bonne valeur dans $buffer.
c'est apparement au niveau du "puts" mais je vois vraiment pas...
 
merci d'avance !!!


Message édité par ofbdood le 18-10-2002 à 19:06:13
Reply

Marsh Posté le 17-10-2002 à 22:37:18   

Reply

Marsh Posté le 18-10-2002 à 00:59:29    

je vois pas trop... pas de message d'erreur ?  
Tu fais un fclose($fp) ?
Il peut arriver que le fichier ne soit pas écrit tout de suite et que les modifications ne soient faites que lors de la fermeture du fichier (fclose)...
 
sinon, met l'écriture en dehors de ta boucle.
une seule écriture avec un fwrite($fp,$buffer,sizeof($buffer));


Message édité par ethernal le 18-10-2002 à 01:01:22

---------------
...oups kernel error...
Reply

Marsh Posté le 18-10-2002 à 07:02:51    

oui il y a un fclose à la fin (j'ai oublié de le mettre..)
sinon pour le fputs je susi obliger de le mettre dans ma boucle sinon il l'ecrira à chaque fois (chaque ligne du .ini)
en testant simplement le fputs juste après le fopen ça marche...mai sla dans mon cas precis il veux rien savoir... :'-(

Reply

Marsh Posté le 18-10-2002 à 16:19:48    

alors personne peut me sauver là ? :'(

Reply

Marsh Posté le 18-10-2002 à 19:05:41    

bon voilà j'ai trouver enfin à moitié.
 
en fait je crée un fichier tmp vide et je lis le .ini ligne par ligne quand il trouve la ligne à modifier il la modifie et la copie vers le tmp sinon il copie sans modifier les lignes.
après j'efface l'ancien .ini et je renomme le .tmp en .ini  
voilà ça marche très bien puis vu que c un petit fichier c pas grave si c moins bien optimiser...
 
enfin si jamais qqun trouve mon erreur je veux bien la connaitre :)
 
merci

Reply

Sujets relatifs:

Leave a Replay

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