Encore une fonction de parcours de dossiers et sous dossiers, qui retourne ici un tableau associatif avec :
- en clé, le nom du fichier
- en valeur, le chemin
Source / Exemple :
function ScanDirectory($Directory, $fileTypes = null){
$MyDirectory = opendir($Directory) or die('Erreur');
while(false !== ($Entry = @readdir($MyDirectory))) {
if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..') {
$tmp = ScanDirectory($Directory.'/'.$Entry, $fileTypes);
$files = array_merge((array)$files, (array)$tmp);
} else {
// si le tableau est renseigné
if (is_array($fileTypes)) {
// on recupère l'extension du fichier
$ext = get_file_extension($Entry);
// on vérifie qu'elle fait partie de celles autorisée
if (in_array ($ext, $fileTypes)) {
$files[$Entry] = $Directory.'/';
}
// sinon, on mets toutes les occurences
} else {
$files[$Entry] = $Directory.'/';
}
/* note : on stocke les valeurs dans un tableau associatif :
- clé nom du fichier
- valeur chemin du fichier
- /
}
}
closedir($MyDirectory);
return $files;
}
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
Conclusion :
utiliser cette fonction ainsi :
$extensions = Array('jpg');
$files = ScanDirectory('../images', $extensions);
foreach($files as $cle => $valeur) {
echo $cle . ' : ' . $valeur;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.