RESSOURCES 
 
Exécution de commandes sur les fichiers ou sous-répertoires d'un répertoire
Fourni par SQLI 11 février 2001
 
 

 

/**************************************************
*
* DirMgr
* Laurent Lacroix, 11/02/2001 17:33
* 
* Classe PHP d'exécution de commandes sur les fichiers 
* ou les sous-répertoires d'un répertoire
*
* @param Dir Le répertoire à parcourir
* @return TRUE si l'objet de gestion des répertoires est créé
*
* @see DelCarIf, GetDirsList, GetFilesList
*
*************************************************/

class DirMgr
{
 var $Dir; // Le répertoire concerné
 var $Val; // La valeur établie lors d'une boucle sur fichiers ou répertoires

 // Création d'un gestionnaire de répertoires
 function DirMgr( $Dir )
 {
  //
  // Supprimer l'éventuel backslash au bout du nom du répertoire
  $Dir = DelCarIf( $Dir );
  //
  // Si il s'agit bien d'un répertoire
  if( ! is_dir( $Dir ) ) return FALSE;
  //
  // Initialiser la propriété Dir
  $this->Dir = $Dir;
  return TRUE;
 }

 // Récupère une liste de répertoires d'un sous-répertoire
 function getSubDirs( $szBasDir, $bSubDirLvl, &$Arr, $DirRegEx="" )
 {
  //
  // Dernier niveau autorisé atteint
  if( $bSubDirLvl < 0 ) return;
  //
  // Définir et controler répertoire
  if( $szBasDir == "" ) $szBasDir = $this->Dir;
  if( $szBasDir == "" ) return;
  //
  // Récupérer les sous répertoires
  GetDirsList( $szBasDir, $bSubDirLvl, $Arr, $DirRegEx );
 }

 function getFiles( $szBasDir, $bSubDirLvl, &$Arr, $DirRegEx="", $FilRegEx="" ) 
 { 
  // 
  // Dernier niveau autorisé atteint 
  if( $bSubDirLvl < 0 ) return; 
  // 
  // Définir et contrôler répertoire 
  if( $szBasDir == "" ) $szBasDir = $this->Dir; 
  if( $szBasDir == "" ) return; 
  //
  // Récupérer les fichiers
  GetFilesList( $szBasDir, $bSubDirLvl, $Arr, $DirRegEx, $FilRegEx );
 }

  // Exécute la fonction Fct pour chaque élément du tableau Arr
  function execFunc( $Arr, $Fct )
  {
  $this->Val = "";
  //
  // Pour chaque élément du tableau
  while( list( $k, $v ) = each( $Arr ) ) 
  {
   // Construire la commande PHP
   $Cmd = $Fct . "( \"" . $k. "\", \"" . $v . "\", \$this->Val );";
   // Appeler la fonction demandée
   eval( $Cmd );
  }
  return $this->Val;
 }
}
 
Accueil | Haut de page