Modifier un fichier en PHP

chico95 -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Salut a tous,

J'ai un petit problème, voila, j'aimerais modifier le contenu d'un fichier sans réécrire par dessus, je pose mon code et je vous explique mon problème :

<?php      

$liste_modif="";  
   
$ouvre=fopen("test.txt","r");  // ouverture du fichier  

while (!feof ($ouvre)){        // tant que pas en fin de fichier  

          $lecture = fgets($ouvre, 4096); // stockage dans $lecture  
          $donnee=explode(";",$lecture);  // parsing des données basé sur ";")  

          // modification des données  
          $1=preg_match("#[0-9]+#",$donnee[0]);  
          if ($1){  
                    $donnee[0]=str_replace($1,$1+3,$donnee[0]);  
          }
  
          // stockage temporaire des données toujours avec le séparateur  
          $liste_modif.=$donnee[0].";\r\n";  
}  

fclose($ouvre);   // fermeture  

$ouvre=fopen("test.txt","w+");  
fwrite($ouvre,$liste_modif);  
fclose($ouvre);  

?> 


Mon problème c'est la partie en gras qui ne marche pas, voila l'algo que je n'arrive pas a réaliser :

Si il y a un nombre dans $donnee[0] Alors  
          on ajoute +3 à ce nombre  
FinSi 


Merci
A voir également:

3 réponses

chico95
 
j'ai deja trouvé la moitié pour ceux que sa intéresse :

J'ai remplacé preg_match par preg_match_all...
"NoOffFirstLineMenus=" est juste le début de mon texte a modifier :

if (preg_match_all("#(NoOffFirstLineMenus=)([0-9]+)$#",$donnee[0],$tableau)){
					$donnee[0]=str_replace($tableau[2],$tableau[2]+3,$donnee[0]);
}


par contre je n'arrive toujours pas a rajouter +3 à ce nombre, des idées ??

merci
0
chico95
 
up !
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
tiens ça marche comme çela:

<?php
$donnee[0]='bla blabblallal210reblalalalal321bla blabblallal 630 reblalalalal';
$masque='#[0-9]+#';
preg_match_all($masque,$donnee[0],$tableau,PREG_PATTERN_ORDER);
//visu
echo '<pre>';
print_r($tableau);
echo '</pre>';

for($i=0;$i<sizeof($tableau[0]);$i++){
	$valeur=$tableau[0][$i];
	$valeur_remplacement=$tableau[0][$i]+3;
	$donnee[0]=preg_replace("/$valeur/","$valeur_remplacement",$donnee[0]);
	
}
echo $donnee[0];
?>
0