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

Catégorie :Class et Objet ( POO ) Niveau : Initié Date de création : 29/06/2008 Date de mise à jour : 29/06/2008 19:36:24 Vu / téléchargé: 430 / 32

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

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


 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 juin 2008 19:36:24 :
Ajout de la source

Commentaires et avis

signaler à un administrateur
Commentaire de Astalavista le 11/09/2008 19:10:28

ATTENTION, Question Piège :

Elle est où la classe ?
(Réfléchit avant de répondre ...)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.