Modifier un fichier en PHP
chico95
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
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 :
Mon problème c'est la partie en gras qui ne marche pas, voila l'algo que je n'arrive pas a réaliser :
Merci
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
-
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 -
-
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]; ?>