Lister les fichiers d'un répertoire FTP

/**
 * FTP_dir list all files from a FTP dir
 * A filter on file extension can be set
 * only picture : array('.jpg', '.gif', '.png')
 * all the files : array();
 *
 * @author Christian
 * @version 1.0 19/05/2009
 */


class FTP_dir {

//return files list
private $nFiles=array();
//tableau des extensions
private $nExt=array();

/**
* Constructor : lister les fichiers contenus dans le dossier FTP
* @param string $_path dossier à analyser
* @param array $_filter filtre sur l''extention du fichier
*/
public function __construct($_path, array $_filter) {
//dossier incorrecte
if (!is_dir($_path)) {
throw new Exception("FTP path $_path could not be found !!!");
}
//dossier inaccessible
$dh = opendir($_path);
if (!$dh) {
throw new Exception("FTP path $_path could not be opened !!!");
}

//mettre le tableau des extension en miniscule
$this->nExt=$this->filterToLower($_filter);

while (($file = readdir($dh)) !== false) {
//aucun filtre
if (count($this->nExt)==0) {
array_push($nFiles, $file);
} else {
//ajouter si l'extension du fichier est dans le filtre
$ext=strtolower(strrchr($_path.$file,'.'));
if (in_array($ext, $this->nExt)) {
array_push($this->nFiles, $file);
}
}
}
closedir($dh);
}

public function __toString() {
return print_r($this->nFiles);
}
/**
* retourne le tableau des fichiers dans dossier
* @return array liste des fichiers
*/
public function getFiles() {
return $this->nFiles;
}
/**
* Mettre les élements du tableau en minuscule
* @param array $_ar tableau à parser
* @return array tableau en minuscule
*/
private function filterToLower(array $_ar) {
foreach ($_ar as $val) {
$val=strtolower($val);
}
return $_ar;
}
}
?>
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire