begin process at 2012 05 27 22:15:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > CLASSE POUR MANIPULER LES FICHIERS INI

CLASSE POUR MANIPULER LES FICHIERS INI


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Initié Date de création :22/06/2004 Vu :3 934

Auteur : Gorrk

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Bon, ca faisait un petit bout de temps que j'avais pas fait de PHP, mais comme la sortie de PHP 5 approche, j'ai decidé de m'y remettre et de construire une classe en PHP 5. J'ai essayé de le rendre le plus clair possible et de respecter la convention d'écriture qui est située ici : http://classes.scriptsphp.net:81/article.conventio n-de-codage

Source

  • <?php
  • class IniFile
  • {
  • /**
  • * @desc tableau contenant l'eensemble des informations.
  • * @type array
  • **/
  • protected $Content=array();
  • /**
  • * @desc true pour afficher l'evolution du script.
  • * @type boolean
  • **/
  • protected $Debug=false;
  • /**
  • * @return -
  • * @desc Affiche "Objet cree." si Debug=true.
  • **/
  • public function __construct()
  • {
  • $this->Debug("Objet cr&eacute;&eacute;.");
  • }
  • /**
  • * @return -
  • * @desc Affiche une erreur si on appel une methode inexistante si Debug=true.
  • **/
  • public function __call($name,$arguments)
  • {
  • $this->Debug("La methode '".$name."' n'existe pas.");
  • }
  • /**
  • * @return -
  • * @param string $name nom de la variable.
  • * @desc Affiche une erreur si on appel une variable inexistante si Debug=true.
  • **/
  • public function _get($name)
  • {
  • $this->Debug("La variable '".$name."' n'existe pas.");
  • }
  • /**
  • * @return -
  • * @param string $name nom de la variable.
  • * @param variant $value valeur a assigne a la variable.
  • * @desc Affiche une erreur si on assigne une valeur a une variable inexistante si Debug=true.
  • **/
  • public function _set($name,$value)
  • {
  • $this->Debug("La variable '".$name."' n'existe pas.");
  • }
  • /**
  • * @return -
  • * @param string $string message a afficher.
  • * @desc Affiche l'evolution du script si Debug=true.
  • **/
  • protected function Debug($string)
  • {
  • if(true==$this->Debug)
  • echo "***".$string."<br>\n";
  • }
  • /**
  • * @return -
  • * @param string $filname nom du fichier dans lequel on exporte les informations.
  • * @desc Exporte les informations dans un fichier.
  • **/
  • public function ExportToFile($filename)
  • {
  • ksort($this->Content);
  • if(false!=($file_handle=@fopen($filename,"w")))
  • {
  • $this->Debug("Fichier '".$filename."' ouvert.");
  • foreach($this->Content as $key=>$value)
  • {
  • fputs($file_handle,"[".$key."]\n");
  • ksort($this->Content[$key]);
  • foreach($this->Content[$key] as $key2=>$value)
  • fputs($file_handle,$key2."=".$value."\n");
  • fputs($file_handle,"\n");
  • }
  • $this->Debug("Informations charg&eacute;es dans '".$filename."'.");
  • $this->Debug("Fichier '".$filename."' ferm&eacute;.");
  • fclose($file_handle);
  • }
  • else
  • $this->Debug("Impossible d'ouvrir le fichier '".$filename."'.");
  • }
  • /**
  • * @return array
  • * @desc Retourne toutes les informations dans un tableau.
  • **/
  • public function GetAllContent()
  • {
  • return $this->Content;
  • }
  • /**
  • * @return string
  • * @param string $category categorie dans laquel se trouve l'information.
  • * @param string $key nom de l'information.
  • * @desc Retourne l'information demande.
  • **/
  • public function GetContent($category,$key)
  • {
  • return isset($this->Content[$category][$key])?$this->Content[$category][$key]:false;
  • }
  • /**
  • * @return -
  • * @param string $filname nom du fichiera importer.
  • * @desc Importe les informations contenues dans un fichier.
  • **/
  • public function LoadFromFile($filename)
  • {
  • if(false!=($file_handle=@fopen($filename,"r")))
  • {
  • $this->Debug("Fichier '".$filename."' ouvert.");
  • while(false!=($line=fgets($file_handle)))
  • {
  • if(";"==substr($line,0,1))
  • continue;
  • if(true==ereg("\[(.+)\]",$line,$temp))
  • $category=$temp[1];
  • elseif(true==ereg("(.*)=([^;]*)",$line,$temp))
  • $this->Content[$category][trim($temp[1])]=trim($temp[2]);
  • }
  • $this->Debug("Informations charg&eacute;es &agrave; partir de '".$filename."'.");
  • $this->Debug("Fichier '".$filename."' ferm&eacute;.");
  • fclose($file_handle);
  • }
  • else
  • $this->Debug("Impossible d'ouvrir le fichier '".$filename."'.");
  • }
  • /**
  • * @return -
  • * @desc Efface toutes les informations.
  • **/
  • public function Reset()
  • {
  • $this->Content=array();
  • $this->Debug("Informations remises &agrave; z&eacute;ro.");
  • }
  • /**
  • * @return -
  • * @param string $category categorie dans laquel se trouve l'information.
  • * @param string $key nom de l'information.
  • * @param string $value valeur de l'information.
  • * @desc Enregistre une information.
  • **/
  • public function SetContent($category,$key,$value)
  • {
  • $this->Content[$category][$key]=$value;
  • }
  • /**
  • * @return -
  • * @desc Affiche "Objet detruit." si Debug=true.
  • **/
  • public function __destruct()
  • {
  • $this->Debug("Objet d&eacute;truit.");
  • }
  • }
  • $ini=new IniFile();
  • $ini->LoadFromFile("php.ini");
  • echo $ini->GetContent("PHP","error_reporting")."<br>\n";
  • ?>
<?php
class IniFile
{
    /**
    * @desc tableau contenant l'eensemble des informations.
    * @type array
    **/
    protected $Content=array();

    /**
    * @desc true pour afficher l'evolution du script.
    * @type boolean
    **/
    protected $Debug=false;

    /**
    * @return -
    * @desc Affiche "Objet cree." si Debug=true.
    **/
    public function __construct()
    {
        $this->Debug("Objet cr&eacute;&eacute;.");
    }

    /**
    * @return -
    * @desc Affiche une erreur si on appel une methode inexistante si Debug=true.
    **/
    public function __call($name,$arguments)
    {
        $this->Debug("La methode '".$name."' n'existe pas.");
    }

    /**
    * @return -
    * @param string $name nom de la variable.
    * @desc Affiche une erreur si on appel une variable inexistante si Debug=true.
    **/
    public function _get($name)
    {
        $this->Debug("La variable '".$name."' n'existe pas.");
    }

    /**
    * @return -
    * @param string $name nom de la variable.
    * @param variant $value valeur a assigne a la variable.
    * @desc Affiche une erreur si on assigne une valeur a une variable inexistante si Debug=true.
    **/
    public function _set($name,$value)
    {
        $this->Debug("La variable '".$name."' n'existe pas.");
    }

    /**
    * @return -
    * @param string $string message a afficher.
    * @desc Affiche l'evolution du script si Debug=true.
    **/
    protected function Debug($string)
    {
        if(true==$this->Debug)
            echo "***".$string."<br>\n";
    }

    /**
    * @return -
    * @param string $filname nom du fichier dans lequel on exporte les informations.
    * @desc Exporte les informations dans un fichier.
    **/
    public function ExportToFile($filename)
    {
        ksort($this->Content);
        if(false!=($file_handle=@fopen($filename,"w")))
        {
            $this->Debug("Fichier '".$filename."' ouvert.");
            foreach($this->Content as $key=>$value)
            {
                fputs($file_handle,"[".$key."]\n");
                ksort($this->Content[$key]);
                foreach($this->Content[$key] as $key2=>$value)
                    fputs($file_handle,$key2."=".$value."\n");
                fputs($file_handle,"\n");
            }
                $this->Debug("Informations charg&eacute;es dans '".$filename."'.");
                $this->Debug("Fichier '".$filename."' ferm&eacute;.");
                fclose($file_handle);
        }
        else
            $this->Debug("Impossible d'ouvrir le fichier '".$filename."'.");
    }

    /**
    * @return array
    * @desc Retourne toutes les informations dans un tableau.
    **/
    public function GetAllContent()
    {
        return $this->Content;
    }

    /**
    * @return string
    * @param string $category categorie dans laquel se trouve l'information.
    * @param string $key nom de l'information.
    * @desc Retourne l'information demande.
    **/
    public function GetContent($category,$key)
    {
        return isset($this->Content[$category][$key])?$this->Content[$category][$key]:false;
    }

    /**
    * @return -
    * @param string $filname nom du fichiera importer.
    * @desc Importe les informations contenues dans un fichier.
    **/
    public function LoadFromFile($filename)
    {
        if(false!=($file_handle=@fopen($filename,"r")))
        {
            $this->Debug("Fichier '".$filename."' ouvert.");
            while(false!=($line=fgets($file_handle)))
            {
                if(";"==substr($line,0,1))
                    continue;
                if(true==ereg("\[(.+)\]",$line,$temp))
                    $category=$temp[1];
                elseif(true==ereg("(.*)=([^;]*)",$line,$temp))
                    $this->Content[$category][trim($temp[1])]=trim($temp[2]);
            }
            $this->Debug("Informations charg&eacute;es &agrave; partir de '".$filename."'.");
            $this->Debug("Fichier '".$filename."' ferm&eacute;.");
            fclose($file_handle);
        }
        else
            $this->Debug("Impossible d'ouvrir le fichier '".$filename."'.");
    }

    /**
    * @return -
    * @desc Efface toutes les informations.
    **/
    public function Reset()
    {
        $this->Content=array();
        $this->Debug("Informations remises &agrave; z&eacute;ro.");
    }

    /**
    * @return -
    * @param string $category categorie dans laquel se trouve l'information.
    * @param string $key nom de l'information.
    * @param string $value valeur de l'information.
    * @desc Enregistre une information.
    **/
    public function SetContent($category,$key,$value)
    {
        $this->Content[$category][$key]=$value;
    }

    /**
    * @return -
    * @desc Affiche "Objet detruit." si Debug=true.
    **/
    public function __destruct()
    {
        $this->Debug("Objet d&eacute;truit.");
    }
}

$ini=new IniFile();
$ini->LoadFromFile("php.ini");
echo $ini->GetContent("PHP","error_reporting")."<br>\n";
?>

 Conclusion

Pour tout vous dire, j'ai hontesement pompé une source de phpcs.com, pour l'idée de la methode Debug() et je remercie son auteur.
Je sais, vous allez me dire que c'est pas très original, mais j'avais pas eu l'idée.

N'hésitez pas à laisser vos commentaires.


 Sources du même auteur

DÉBUT DE CLASSE ABSTRAITE POUR UNE MEILLEUR GESTION DES PROP...
Source avec Zip CLASSE POUR CREER UN OBJET DYNAMIQUE PHP5
Source avec Zip CLASSE D'EXCEPTIONS ET DE GESTIONS D'ERREURS PHP5
Source avec Zip FONCTION PRATIQUES POUR MANIPULER LES PARAMETRES HTTP
Source avec Zip CLASSE DE NEWS PHP5

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

Commentaires et avis

Commentaire de revinc le 22/06/2004 20:53:53

C'est d'une grande utilité que de recoder des fonctions déjà existantes (http://fr3.php.net/manual/fr/function.parse-ini-file.php)...

Commentaire de GRenard le 23/06/2004 07:24:50

Je trouve que cette source peut être très utile ! premièrement parce que moi je suis très à l'aise en php et ceci peut me servir de base pour écrire ce script dans un autre langage...
De plus, bravo pour l'utilisation CORRECTE du langage ! Peu de monde en font autant :) J'essais de le promouvoir le plus possible lorsque je post moi aussi !
Peut-etre juste un peu trop de commentaires (surement fait avec Zend Studio ou autre qui ressemble...), car moi je m'y retrouve mal dans NotePad... mais bon, il va surement falloir un jour que je m'y mette à Zend :P

Encore Bravo :) 10/10 !

Commentaire de Gorrk le 23/06/2004 08:54:41

Reponse à revinc : ok, je ne connaissai pas cette fonction, existe il ausi une fonction semblable a ExportToFile ?

Reponse a GRenard : Merci beaucoup, je code dans Dreamweaver MX parce qu'il propose une coloration syntaxique agreable, moi je dis chapeau, parce que notepad c'est la galère. Les commentaires, je les tous taper a la main, finalement c'est le plus chiant

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales