Ce code tiré d'une source de winzou (
http://www.phpcs.com/code.aspx?id=29179) permet de gérer un fichier de configuration *.ini
Source / Exemple :
<?php
////////////////////////////////////
// config.php //////////////////////
////////////////////////////////////
// Auteur : Roots //
// Date de création : 06/07/05 //
// Commentaire : //
// Tirée et améliorer d'une //
// source de Winzou //
////////////////////////////////////
/*
CLASSE DE GESTION D'UN FICHIER DE CONFIGURATION
/*
la méthode config() est le constructeur de la classe :
-> il appelle la fonction load_ini()
-> il passe en variable globale toutes les clefs trouvé dans le fichier ini
la méthode load_ini() charge le fichier $fichier et le parse et l'envoi dans le tableau $config
la méthode modif_ini($categ,$cle,$value) permet de modifier ou de créer une clef dans le fichier $fichier
la méthode sup_ini($categ,$value) permet de supprimer une clef dans le fichier $fichier
la méthode save_ini() sauvegarde dans le fichier $fichier toutes les modifications
class config
{
var $fichier = 'config.ini';
var $config;
//Constructeur
function config()
{
$this->config = $this->load_ini();
reset($this->config);
while(list($cle,$valeur) = each ($this->config))
{
if(count($valeur)>=1)
{
while(list($cle2,$valeur2) = each ($this->config[$cle]))
{
$GLOBALS[$cle2]=$valeur2;
}
} else {
$GLOBALS[$cle]=$value;
}
}
}
//Charge le fichier de config et le parse
function load_ini()
{
if(!file_exists($this->fichier))
{
return true;
}
$this->config = parse_ini_file($this->fichier, true);
return $this->config;
}
//Modifie un parametre
function modif_ini($categ,$cle,$value)
{
$this->config[$categ][$cle]=$value;
$this->save_ini();
}
//Supprime un parametre
function sup_ini($categ,$cle)
{
unset($this->config[$categ][$cle]);
$this->save_ini();
}
//Enregistre le changement de parametre
function save_ini()
{
$data = '';
if(file_exists($this->fichier))
{
unlink($this->fichier);
}
if($fp = fopen($this->fichier,'w+'))
{
foreach($this->config as $k=>$v)
{
$data .= '['.$k.']\r\n';
foreach($v as $k2=>$v2)
{
$data .= $k2.'='.$v2.'\r\n';}
$data .= '\r\n\r\n';
}
fputs($fp,'; Fichier de configuration gere avec la classe config()\r\n\r\n\r\n'.$data);
fclose($fp);
return true;
} else {
return false;
}
}
}
?>
Conclusion :
Pas de bug connu pour le moment, si vous en trouvez n'hésitez pas à m'en faire part ^^
Merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.