Modifier un fichier en PHP

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

3 réponses

  1. 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
    1. 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];
      ?>

      Discussions similaires

      question pix mot caché

      7 réponses