|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CLASSE D'EXTRACTION DES DONNÉES D'UN FICHIER INI
Information sur la source
Description
Cette classe "ini.class.php" que j'ai créer regroupe quelques fonctions utiles à l'extraction des données dans un fichier de type INI. Cette classe a été crée dans le but d'aider ceux qui, comme moi ont eu des problème concernant les opérations d'extraction de données (Key, Section, Value) à partir d'un fichier INI.
Source
- <?php
- /*
- *******************************************************************************
- **************************CARACTERISTIQUES*************************************
- *******************************************************************************
- *********AUTEUR: Gladis NDOUAB'S***********************************************
- *********E-mail: gndouabs@hotmail.de*******************************************
- *********Crée le: 25/06/2008***************************************************
- *********Vesion: 1.0.6*********************************************************
- *********Nombre de ligne: 203**************************************************
- *********Licence: Gratuit (freeware)*******************************************
- *********Modification: Permise seulement ajout*********************************
- *********Distribution: Permise avec les données ci-dessus sans modification****
- *******************************************************************************
- **************************DESCRIPTION******************************************
- *******************************************************************************
- Cette classe "ini.class.php" que j'ai créer regroupe quelques fonctions
- utiles à l'extraction des données dans un fichier de type INI.
- Cette classe a été crée dans le but d'aider ceux qui, comme moi ont eu des
- problème concernant les opérations d'extraction de données (Key, Section, Value)
- à partir d'un fichier INI.
- *******************************************************************************
- *********************RAPPEL****************************************************
- *******************************************************************************
- NB: la classe ne sert que pour la lecture! car j'ai jugé que l'écriture
- était plus simple à faire avec la fonction fwrite et autre.
- *******************************************************************************
- */
-
-
- function ReadIni($file, $process_sections = false)
- {
- $tab = parse_ini_file($file,$process_sections);
- return $tab;
- }
-
-
- // Vérifie l'existance de la section $valSection dans le fichier INI $file
- function ExistSection($file, $valSection)
- {
- $ini = file($file);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Conversion de la section $valSection en majuscule
- $valSection = strtoupper($valSection);
- //Initialisations des variables
- $bool = false;
- //Chercher la section $valSection en scannant ligne par ligne
- foreach ($ini as $line)
- {
- $line = trim($line);
- $line = str_replace("\t", " ", $line);
- if ($line{0} == '[')
- {
- $tmp = explode(']', $line);
- if($valSection == strtoupper(trim(substr($tmp[0], 1)))){$bool = true;break;}
- continue;
- }
- }
- return $bool;
- }
-
-
- // Liste toutes les sections du fichier INI $file
- function ListSections($file)
- {
- $ini = file($file);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Initialisations des variables
- $sections = "";
- foreach ($ini as $line)
- {
- $line = trim($line);
- $line = str_replace("\t", " ", $line);
- if ($line{0} == '[')
- {
- $tmp = explode(']', $line);
- $sections .= trim(substr($tmp[0], 1))." | ";
- continue;
- }
- }
- return $sections;
- }
-
-
- // Verifie l'existance de la clé $val dans le fichier INI $file
- function ExistKey($file, $valKey)
- {
- $ini = file($file);
- //Conversion de la clé $valKey en majuscule
- $valKey = strtoupper($valKey);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Initialisations des variables
- $bool = false; $i = 0;
- //Recherche la clé $val en scannant $key
- foreach ($ini as $line)
- {
- list($key, $value) = explode('=', $line, 2);
- if ($valKey == strtoupper(trim($key))){$bool = true;break;}
- $i++; continue;
- }
- return $bool;
- }
-
-
- //Liste toutes les clés du fichier INI $file
- function ListKeys($file)
- {
- $ini = file($file);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Initialisations des variables
- $keys = ""; $tmp = array(); $i=0;
- foreach ($ini as $line)
- {
- list($key, $value) = explode('=', $line, 2);
- $tmp[$i] = trim($key); $i++; continue;
- }
- //Listage des clés dans le tableau $keys
- for($j = 0;$j <= $i;$j++)
- {
- if((strpos($tmp[$j],"]") == FALSE)and($tmp[$j] != "")) $keys .= $tmp[$j]." | ";
- }
- return $keys;
- }
-
-
- // Retourne la valeur de la clé $valKey du fichier $file
- function ReadValue($file, $valKey)
- {
- $ini = file($file);
- //Conversion de la clé $val en majuscule
- $valKey = strtoupper($valKey);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Initialisations des variables
- $Result = "NOTKEY";//Cette valeur est retournée si la clé $valKey n'existe pas
- //Recherche la clé $val en scannant $key
- foreach ($ini as $line)
- {
- list($key, $value) = explode('=', $line, 2);
- if ($valKey == strtoupper(trim($key))){$Result = trim($value);break;}
- continue;
- }
- return $Result;
- }
-
-
- // Retourne la valeur de la clé $valKey du fichier $file
- function ReadValueBySection($file, $valSection, $valKey)
- {
- $ini = file($file);
- //Conversion de la section $valSection et de la clé $valKey en majuscule
- $valKey = strtoupper($valKey);
- $valSection = strtoupper($valSection);
- //vérifie si le fichier est vide
- if (count($ini) == 0) {return array();}
- //Initialisations des variables
- $Result = "NOTKEY";//Cette valeur est retournée si la section $valSection
- // ou la clé $valKey n'existe pas
- $i = 0;// Initialisation du compteur de ligne du fichier $file
- $j = 0;//Contient le noméro de ligne de la section $valSection
- $k = 0;//Contient le noméro de ligne de la section suivant $valSection
- //Chercher la section $valSection en scannant ligne par ligne
- foreach ($ini as $line)
- {
- $line = trim($line);
- $line = str_replace("\t", " ", $line);
- $i++;
- if ($line{0} == '[')
- {
- $tmp = explode(']', $line);
- if($j == 0)
- {
- if($valSection == strtoupper(trim(substr($tmp[0], 1)))){$j = $i;}
- }
- else
- {
- $k = $i;
- break;
- }
- continue;
- }
- if(($j > 0)and($i == count($ini))){$k = $i;break;}
- }
- $i = 0;//Réinitialisation du compteur de ligne du fichier $file
- //Recherche la clé $valKey en scannant $key dans la section $valSection
- foreach ($ini as $line)
- {
- $i++;
-
- if(($i <= $k)and($i > $j))
- list($key, $value) = explode('=', $line, 2);
- if ($valKey == strtoupper(trim($key))){$Result = trim($value);break;}
- continue;
- }
-
- return $Result;
- }
-
- ?>
<?php
/*
*******************************************************************************
**************************CARACTERISTIQUES*************************************
*******************************************************************************
*********AUTEUR: Gladis NDOUAB'S***********************************************
*********E-mail: gndouabs@hotmail.de*******************************************
*********Crée le: 25/06/2008***************************************************
*********Vesion: 1.0.6*********************************************************
*********Nombre de ligne: 203**************************************************
*********Licence: Gratuit (freeware)*******************************************
*********Modification: Permise seulement ajout*********************************
*********Distribution: Permise avec les données ci-dessus sans modification****
*******************************************************************************
**************************DESCRIPTION******************************************
*******************************************************************************
Cette classe "ini.class.php" que j'ai créer regroupe quelques fonctions
utiles à l'extraction des données dans un fichier de type INI.
Cette classe a été crée dans le but d'aider ceux qui, comme moi ont eu des
problème concernant les opérations d'extraction de données (Key, Section, Value)
à partir d'un fichier INI.
*******************************************************************************
*********************RAPPEL****************************************************
*******************************************************************************
NB: la classe ne sert que pour la lecture! car j'ai jugé que l'écriture
était plus simple à faire avec la fonction fwrite et autre.
*******************************************************************************
*/
function ReadIni($file, $process_sections = false)
{
$tab = parse_ini_file($file,$process_sections);
return $tab;
}
// Vérifie l'existance de la section $valSection dans le fichier INI $file
function ExistSection($file, $valSection)
{
$ini = file($file);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Conversion de la section $valSection en majuscule
$valSection = strtoupper($valSection);
//Initialisations des variables
$bool = false;
//Chercher la section $valSection en scannant ligne par ligne
foreach ($ini as $line)
{
$line = trim($line);
$line = str_replace("\t", " ", $line);
if ($line{0} == '[')
{
$tmp = explode(']', $line);
if($valSection == strtoupper(trim(substr($tmp[0], 1)))){$bool = true;break;}
continue;
}
}
return $bool;
}
// Liste toutes les sections du fichier INI $file
function ListSections($file)
{
$ini = file($file);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Initialisations des variables
$sections = "";
foreach ($ini as $line)
{
$line = trim($line);
$line = str_replace("\t", " ", $line);
if ($line{0} == '[')
{
$tmp = explode(']', $line);
$sections .= trim(substr($tmp[0], 1))." | ";
continue;
}
}
return $sections;
}
// Verifie l'existance de la clé $val dans le fichier INI $file
function ExistKey($file, $valKey)
{
$ini = file($file);
//Conversion de la clé $valKey en majuscule
$valKey = strtoupper($valKey);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Initialisations des variables
$bool = false; $i = 0;
//Recherche la clé $val en scannant $key
foreach ($ini as $line)
{
list($key, $value) = explode('=', $line, 2);
if ($valKey == strtoupper(trim($key))){$bool = true;break;}
$i++; continue;
}
return $bool;
}
//Liste toutes les clés du fichier INI $file
function ListKeys($file)
{
$ini = file($file);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Initialisations des variables
$keys = ""; $tmp = array(); $i=0;
foreach ($ini as $line)
{
list($key, $value) = explode('=', $line, 2);
$tmp[$i] = trim($key); $i++; continue;
}
//Listage des clés dans le tableau $keys
for($j = 0;$j <= $i;$j++)
{
if((strpos($tmp[$j],"]") == FALSE)and($tmp[$j] != "")) $keys .= $tmp[$j]." | ";
}
return $keys;
}
// Retourne la valeur de la clé $valKey du fichier $file
function ReadValue($file, $valKey)
{
$ini = file($file);
//Conversion de la clé $val en majuscule
$valKey = strtoupper($valKey);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Initialisations des variables
$Result = "NOTKEY";//Cette valeur est retournée si la clé $valKey n'existe pas
//Recherche la clé $val en scannant $key
foreach ($ini as $line)
{
list($key, $value) = explode('=', $line, 2);
if ($valKey == strtoupper(trim($key))){$Result = trim($value);break;}
continue;
}
return $Result;
}
// Retourne la valeur de la clé $valKey du fichier $file
function ReadValueBySection($file, $valSection, $valKey)
{
$ini = file($file);
//Conversion de la section $valSection et de la clé $valKey en majuscule
$valKey = strtoupper($valKey);
$valSection = strtoupper($valSection);
//vérifie si le fichier est vide
if (count($ini) == 0) {return array();}
//Initialisations des variables
$Result = "NOTKEY";//Cette valeur est retournée si la section $valSection
// ou la clé $valKey n'existe pas
$i = 0;// Initialisation du compteur de ligne du fichier $file
$j = 0;//Contient le noméro de ligne de la section $valSection
$k = 0;//Contient le noméro de ligne de la section suivant $valSection
//Chercher la section $valSection en scannant ligne par ligne
foreach ($ini as $line)
{
$line = trim($line);
$line = str_replace("\t", " ", $line);
$i++;
if ($line{0} == '[')
{
$tmp = explode(']', $line);
if($j == 0)
{
if($valSection == strtoupper(trim(substr($tmp[0], 1)))){$j = $i;}
}
else
{
$k = $i;
break;
}
continue;
}
if(($j > 0)and($i == count($ini))){$k = $i;break;}
}
$i = 0;//Réinitialisation du compteur de ligne du fichier $file
//Recherche la clé $valKey en scannant $key dans la section $valSection
foreach ($ini as $line)
{
$i++;
if(($i <= $k)and($i > $j))
list($key, $value) = explode('=', $line, 2);
if ($valKey == strtoupper(trim($key))){$Result = trim($value);break;}
continue;
}
return $Result;
}
?>
Conclusion
J espere seulement que cette classe puisse être utile à ceux qui ont auront bésoin. et je compte sur vos critiques pour pouvoir la faire évoluer. MERCI POUR LES COMMENTAIRES ET BONNE UTILISATION
Historique
- 29 juin 2008 19:36:24 :
- Ajout de la source
Sources de la même categorie
Commentaires et avis
|
|