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
A voir également:
- Modifier un fichier en PHP
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Modifier dns - Guide
- Fichier epub - Guide
- Modifier extension fichier - Guide
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 :
par contre je n'arrive toujours pas a rajouter +3 à ce nombre, des idées ??
merci
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];
?>