<?php
// ------------------------------------------------------------------------- //
// Lire et affecter des variables à partir d'un fichier //
// ------------------------------------------------------------------------- //
// Auteur: Francois BENARD //
// Email: hrz@free.fr //
// Web: http://hrz.free.fr/ //
// ------------------------------------------------------------------------- //
/*
script php: analyse de fichier(s) de configuration (par exemple)
version 1.0
DATE DE CREATION: 23/06/01
utilisation du script par : include ou require
le mode function n'est pas prevue ici toutes les variables des fichiers conf
devraient etre transmises la fonction parse_str( ) ne verify pas si la variable
est affectée par avance
LECTURES DES VARIABLES DE CONFIGURATION EN TROIS ETAPES
LES INFOS TRANSMISE A L APPEL DU SCRIPT SONT PRISENT EN COMPTE IMMEDIATEMENT
ELLE SONT COMPLETE PAR LA CONFIGURATION CLIENT SI IL EXISTE
ET LE RESTE DES VARIABLES PAR LA CONFIGURATION PAR DEFAULT
PAS DE MODIFICATION DES VARIABLES PRECEDEMMENT INFORMEE
LE FICHIER CONF (une variable par ligne) REPOND A LA FORME SUIVANTE :
nom_de_la_variable = valeur_de_la_variable
ATTENTION UNE LIGNE DE COMMENTAIRE INFORME UNE VARIABLE INUTILE
liste des variables du script
$config nom du fichier de configuration client a transmettre
$c compteur fichiers
$n compteur lignes
$configuration[0] non du fichier de configuration par default modifiable
pour des test locaux sinon=default.cnf
$configuration[1] non du fichier de configuration client si transmis
$conf [$n] contient une ligne du fichier
$conf1 [0] contient le non de la variable
$conf1 [1] valeur a donée a la variable
*/
// PREPARATION
// transmis eventuellement par le client
$configuration[0]=$config;
if ($configuration[1]=="")
{
// configuration local par default
$configuration[1]="default.cnf";
}
// DEBUT DU SCRIPT
$c=0;
// on commencera par lire la configuration client
while ($c<=1)
{
// debut lecture (du ou des) fichier(s) de configuration
if (!empty($configuration[$c]))
{
// si pas de configuration client configuration par default
$n=0;
// debut ligne 0 du fichier de configuraration
// lecture d'un fichier de configuration
$conf=file($configuration[$c]);
while ($n<count($conf))
{
// debut d'analyse des lignes
// decomposition d'une ligne de configuration
$conf1=explode("=",$conf[$n]);
if (empty(${$conf1[0]}))
{
// si la variables est deja configuree on ne fait rien
// sinon on l'affecte
${$conf1[0]}=$conf1[1];
} // ENDIF ( variable existe ]
$n++; // ligne de configuration suivante
} // ENDWHILE [ fin lecture du fichier}
} // ENDIF [existe fichier de configuration )
// fichier suivant
$c++;
} // ENDWHILE ( fin lecture configuration )
// FIN DU SCRIPT
?>