Modifier une partie de fichier de la sorte est possible mais assez laborieux et moyennement fiable. Tu risque un jour ou l'autre d'avoir un fichier destroyé.
Le plus simple et
le plus fiable selon moi est de mettre les infos dans un tableau sérialisé puis d'utiliser simplement file_get_contents/file_put_contents.
Tu pourrais faire par exemple
//definition du fichier
$tabconfig = array();
$tabconfig['menu'] = array("a","b","c"); //tableau précisant les pages que je souhaite faire apparaître dans mon menu
$tabconfig['mode_debug'] = 1;
// enregistrement
file_put_contents('config.txt', serialize($tabconfig));
//récupération des données du fichier
$tab_config = unserialize(file_get_contents('config.txt'));
$tab_menu = $tab_config['menu'];
$mode_debug = $tab_config['mode_debug'];
Très simple à manipuler et très fiable
EDIT :
Il existe cependant un cas rarissime où le fichier pourra être corrompu : si le serveur ne trouve pas le fichier (alors qu'il existe) et qu'on le modifie, par exemple :
//récupération des données du fichier
$tab_config = unserialize(file_get_contents('config.txt'));
$tab_config['mode_debug'] = 2;
//Envoi du fichier modifié
file_put_contents('config.txt', serialize($tab_config));
Dans ce cas de figure si le serveur commet une erreur lors de la récupération du fichier, le tableau ne contiendra plus que l'index dernièrement défini :$tab_config['mode_debug'] = 2;
Après la création du fichier, il est donc plus prudent de vérifier sa validité avant de le modifier. Par exemple :
$tab_config = @unserialize(@file_get_contents('config.txt'));
if(is_array($tab_config))
{
$tab_config['mode_debug'] = 2;
file_put_contents('config.txt', serialize($tab_config));
}
else echo 'fichier non modifié car le fichier est introuvable ou n\'est pas au bon format';
}
Modifier une partie de fichier de la sorte est possible mais assez laborieux et moyennement fiable. Tu risque un jour ou l'autre d'avoir un fichier destroyé.
Le plus simple et [i]le plus fiable[/i] selon moi est de mettre les infos dans un tableau sérialisé puis d'utiliser simplement file_get_contents/file_put_contents.
Tu pourrais faire par exemple
[php]//definition du fichier
$tabconfig = array();
$tabconfig['menu'] = array("a","b","c"); //tableau précisant les pages que je souhaite faire apparaître dans mon menu
$tabconfig['mode_debug'] = 1;
// enregistrement
file_put_contents('config.txt', serialize($tabconfig));
//récupération des données du fichier
$tab_config = unserialize(file_get_contents('config.txt'));
$tab_menu = $tab_config['menu'];
$mode_debug = $tab_config['mode_debug'];[/php]
Très simple à manipuler et très fiable :wink:
EDIT :
Il existe cependant un cas rarissime où le fichier pourra être corrompu : si le serveur ne trouve pas le fichier (alors qu'il existe) et qu'on le modifie, par exemple :
[php]//récupération des données du fichier
$tab_config = unserialize(file_get_contents('config.txt'));
$tab_config['mode_debug'] = 2;
//Envoi du fichier modifié
file_put_contents('config.txt', serialize($tab_config));[/php]Dans ce cas de figure si le serveur commet une erreur lors de la récupération du fichier, le tableau ne contiendra plus que l'index dernièrement défini :$tab_config['mode_debug'] = 2;
Après la création du fichier, il est donc plus prudent de vérifier sa validité avant de le modifier. Par exemple :
[php]$tab_config = @unserialize(@file_get_contents('config.txt'));
if(is_array($tab_config))
{
$tab_config['mode_debug'] = 2;
file_put_contents('config.txt', serialize($tab_config));
}
else echo 'fichier non modifié car le fichier est introuvable ou n\'est pas au bon format';
}[/php]