Gestion d'un fichier de configuration

Contenu du snippet

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

A voir également

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.