/**************************************************
*
* 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;
}
}
|