Probleme Page de Gestion de fichier .ini

Fermé
Utilisateur anonyme - 31 août 2013 à 19:22
 Utilisateur anonyme - 31 août 2013 à 21:03
Bonjour tous le Monde !! Bien passée les vacances ?! =P
Voici mon problème :
J'ai suivi ce tuto pour réaliser un système de gestion pour "php.ini" mais je n'arrive pas à trouver dans quelle variable initialiser le chemin de celui-ci. (C:\Program Files\EasyPHP-12.1\apache\php.ini)

Voici mes pages de code :

* class.php

<?php
class ini
{
  var $fichier="";
  var $groupe="";
  var $item="";
  var $valeur="";
  var $fichier_ini=array();
  function m_fichier($arg)
  {
     $this->fichier=$arg;
     $this->fichier_ini=null;
     $this->fichier_ini=array();
     
	 if(false!==($array=@parse_ini_file($arg, TRUE)))
     {
        $this->fichier_ini=$array;
     }
     else if(file_exists($arg) && $fichier_lecture=file($arg))
     {
       foreach($fichier_lecture as $ligne)
       {
         $ligne_propre=trim($ligne);
         if(preg_match("#^\[(.+)\]$#",$ligne_propre,$matches))
         {
           $groupe_curseur=$matches[1];
         }
         else
         {
           if($ligne_propre[0]!=';' && $tableau=explode("=",$ligne,2))
           {
             $this->fichier_ini[$groupe_curseur][$tableau[0]]=rtrim($tableau[1],"\n\r");
           }
         }
       }
     }
     $this->valeur=$this->fichier_ini[$this->groupe][$this->item];
  }
  function m_groupe($arg)
  {
     $this->groupe=$arg;
     $this->valeur=$this->fichier_ini[$this->groupe][$this->item];
     return true;
  }
  function m_item($arg)
  {
     $this->item=$arg;
     $this->valeur=$this->fichier_ini[$this->groupe][$this->item];
     return true;
  }
  function m_put($arg, $arg_i=false, $arg_g=false, $arg_f=false)
  {
     if($arg_f!==false) $this->m_fichier($arg_f);
     if($arg_g!==false) $this->m_groupe($arg_g);
     if($arg_i!==false) $this->m_item($arg_i);
     $this->fichier_ini[$this->groupe][$this->item]=$arg;
     $this->valeur=$arg;
     return $this->fichier." ==> [".$this->groupe."] ".$this->item."=".$this->valeur;
  }
  function m_count($arg_gr=false)
  {
     if($arg_gr===false)
     return array(1=>$gr_cou=count($this->fichier_ini), 0=>$itgr_cou=count($this->fichier_ini, COUNT_RECURSIVE), 2=>$itgr_cou-$gr_cou);
     else
     return count($this->fichier_ini[$arg_gr]);
  }
  function array_groupe($arg_gr=false)
  {
     if($arg_gr===false)
     $arg_gr=$this->groupe;
     return $this->fichier_ini[$arg_gr];
  }
  function save()
  {
     $fichier_save="";
     foreach($this->fichier_ini as $key => $groupe_n)
     {
         $fichier_save.="
[".$key."]";
         foreach($groupe_n as $key => $item_n)
         {
             $fichier_save.="
".$key."=".$item_n;
         }
     }
     $fichier_save=substr($fichier_save, 1);
     if(file_exists($this->fichier) && reset(explode('.',phpversion()))>=5)
     {
             if(false===file_put_contents($this->fichier, $fichier_save))
             {
                die("Impossible d'écrire dans ce fichier (mais le fichier existe).");
             }
     }
     else
     {
             $fichier_ouv=fopen($this->fichier,"w+");
             if(false===fwrite($fichier_ouv, $fichier_save))
             {
                die("Impossible d'écrire dans ce fichier (Le fichier n'existe pas).");
             }
             fclose($fichier_ouv);
     }
     return true;
  }
  function clear()
  {
      $this->fichier="";
      $this->groupe="";
      $this->item="";
      $this->valeur="";
      $this->fichier_ini=null;
      $this->fichier_ini=array();
  }
  function s_fichier()
  {
     $return=$this->fichier;
     if(file_exists($this->fichier)) unlink($this->fichier);
     $this->fichier="";
     $this->valeur="";
     return "fichier(".$return.") supprimé.";
  }
  function s_groupe()
  {
     $return=$this->groupe;
     if(isset($this->fichier_ini[$this->groupe])) unset($this->fichier_ini[$this->groupe]);
     $this->groupe="";
     $this->valeur="";
     return "groupe(".$return.") supprimé.";
  }
  function s_item()
  {
     $return=$this->item;
     if(isset($this->fichier_ini[$this->groupe][$this->item])) unset($this->fichier_ini[$this->groupe][$this->item]);
     $this->item="";
     $this->valeur="";
     return "item(".$return.") supprimé.";
  }
  function print_curseur()
  {
     echo "Fichier : <b>".$this->fichier."</b><br />";
     echo "Groupe : <b>".$this->groupe."</b><br />";
     echo "Item : <b>".$this->item."</b><br />";
     echo "Valeur : <b>".$this->valeur."</b><br />";
     return true;
  }
  function print_dossier()
  {
     if(is_dir($this->fichier)) {
     echo "<img src='dir.png' alt='Dossier' /><span style='position:relative; top:-10px;font-size:20px; font-weight:bold;'>".$this->fichier."</span><br />";
     if($handle=opendir($this->fichier))
     {
        while(false!==($file=readdir($handle)))
        {
            if(substr($file, -4, 4)==".ini")
            {
               echo "&nbsp;&nbsp;<a href='?fichier=".$file."'><img src='iniicone.png' alt='Ini' style='border:none;' /></a>&nbsp;".$file."<br />";
            }
        }
        closedir($handle);
     }
     return true; }
     else { echo "L'élément sélectionné n'est pas un dossier"; return false; }
  }
  function print_fichier()
  {
     if(file_exists($this->fichier) && is_file($this->fichier) && $fichier_lecture=file($this->fichier))
     {
       foreach($fichier_lecture as $ligne)
       {
         $ligne=preg_replace("#\s$#","",$ligne);
         if(preg_match("#^\[.+\]\s?$#",$ligne))
         $groupe=false;
         if(preg_match("#^\[".preg_quote($this->groupe, "#")."\]$#",$ligne))
         {
           $echo.= "<span style='background-color:aqua;'>".htmlspecialchars($ligne)."</span><br />";
           $groupe=true;
         }
         elseif($groupe==true && $this->item==reset(explode("=",$ligne)))
           $echo.= "<span style='background-color:yellow;'>".htmlspecialchars($ligne)."</span><br />";
         else
           $echo.= htmlspecialchars($ligne)."<br />";
       }
           echo $echo;
     }
     else
     {
       echo "Le fichier n'existe pas ou est incompatible";
     }
     $this->valeur=$this->fichier_ini[$this->groupe][$this->item];
     return true;
  }
  function m_valeur($arg_item, $arg_groupe)
  {
     return $this->fichier_ini[$arg_groupe][$arg_item];
  }
}
?>


* formulaire.php

<?php
// Ou avec include
include('./include/class.php');
  
session_start();
if(isset($_SESSION['ini']))
$ini_objet=unserialize($_SESSION['ini']);
else
$ini_objet=new ini();
 
if(isset($_GET['fichier']))
{
    $dossier=$ini_objet->fichier;
    $dossier=preg_replace('#/$#','',$dossier).'/';
    $ini_objet->m_fichier($dossier.$_GET['fichier']);
    header('Location:./ini.php5');
}
if(isset($_POST['clear']))
{
    $ini_objet->clear();
}
if(isset($_POST['fichier']))
{
    if($_POST['fichier']=='Changer')
    {
        $ini_objet->m_fichier(stripslashes($_POST['source']));
    }
    elseif($_POST['fichier']=='Supprimer')
    {
        $ini_objet->s_fichier();
    }
}
if(isset($_POST['groupe']))
{
    if($_POST['groupe']=='Changer')
    {
        $ini_objet->m_groupe(stripslashes($_POST['source']));
    }
    elseif($_POST['groupe']=='Supprimer')
    {
        $ini_objet->s_groupe();
        $ini_objet->save();
    }
}
if(isset($_POST['item']))
{
    if($_POST['item']=='Changer')
    {
        $ini_objet->m_item(stripslashes($_POST['source']));
    }
    elseif($_POST['item']=='Supprimer')
    {
        $ini_objet->s_item();
        $ini_objet->save();
    }
}
if(isset($_POST['valeur']))
{
    if($_POST['valeur']=='Changer')
    {
        $ini_objet->m_put(stripslashes($_POST['source']));
        $ini_objet->save();
    }
    elseif($_POST['valeur']=='Supprimer')
    {
        $ini_objet->m_put('');
        $ini_objet->save();
    }
}
  
$_SESSION['ini']=serialize($ini_objet);
/* La ligne précédente et les 5 plus haut permettent de sauvegarder les opérations réalisées dans une variable de session et donc, de pouvoir circuler dans un .ini en plusieurs chargements de page. */
  
?>

<html>
<head>
<title>Traitement INI</title>
<style>
form
{
    margin:0px;
    padding:0px;
}
fieldset
{
    margin-right:10px;
    margin-bottom:8px;
    border:1px black solid;
}
legend
{
    color:#333333;
    font-style:italic;
    font-weight:bolder;
    font-size:18px;
}
</style>
</head>
<body>
<div style="float:right;">
  <div style="width:400px; padding:6px; margin-right:12px; border:1px solid black;">
    <div style="float:right; text-align:right;">
      <?php
      $stat=$ini_objet->m_count();
      echo '<strong>'.$stat[1].'éléments</strong> dans ce fichier<br />
      dont <strong>'.$stat[0].'groupes</strong> et <strong>'.$stat[2].' items</strong>.<br />
      <strong>'.$ini_objet->m_count($ini_objet->groupe).' items</strong> dans ce groupe.';
      ?>
    </div>
    <u><i><b>Information sur le curseur</b></i></u><br />
    <?php $ini_objet->print_curseur(); ?>
  </div>
  <div style="width:400px; height:400px; overflow:auto; padding:6px; margin-top:12px; margin-right:12px; border:1px solid black;">
    <u><i><b>Aperçu du <?php if(is_dir($ini_objet->fichier)) echo 'dossier'; else echo 'fichier'; ?></b></i></u><br /><br />
    <span style="font-family:courier; white-space:nowrap;"><?php if(is_dir($ini_objet->fichier)) $ini_objet->print_dossier(); else $ini_objet->print_fichier(); ?></span>
  </div>
</div>
<fieldset><legend>Fichier</legend>
  <form method="post" action="">
    <label>Fichier : <input type="text" name="source" /></label><br />
    <input type="submit" name="fichier" value="Changer" />
  </form>
  <form method="post" action="">
    <input type="submit" name="fichier" value="Supprimer" />
  </form>
</fieldset>
<fieldset><legend>Groupe</legend>
  <form method="post" action="">
    <label>Groupe : <input type="text" name="source" /></label><br />
    <input type="submit" name="groupe" value="Changer" />
  </form>
  <form method="post" action="">
    <input type="submit" name="groupe" value="Supprimer" />
  </form>
</fieldset>
<fieldset><legend>Item</legend>
  <form method="post" action="">
    <label>Item : <input type="text" name="source" /></label><br />
    <input type="submit" name="item" value="Changer" />
  </form>
  <form method="post" action="">
    <input type="submit" name="item" value="Supprimer" />
  </form>
</fieldset>
<fieldset><legend>Valeur</legend>
  <form method="post" action="">
    <label>Valeur : <input type="text" name="source" /></label><br />
    <input type="submit" name="valeur" value="Changer" />
  </form>
  <form method="post" action="">
    <input type="submit" name="valeur" value="Supprimer" />
  </form>
</fieldset>
<br />
<fieldset><legend>Réinitialiser</legend>
  <form method="post" action="">
    <input type="submit" name="clear" value="Effacer" />
  </form>
</fieldset>
</body>
</html>


Merci d'avance !! ^^
A voir également:

1 réponse

Utilisateur anonyme
31 août 2013 à 21:03
Personne a une petite idée ?!
0