27/04/2010, 16:48:14
Merci ! j'ai mis la journée (ou presque) pour faire un code comme je voulais. Il fait une liste des fichiers et des dossiers depuis un point donné, avec les fichiers triés alphabétiquement.
Je vous le mets, au cas où. Si vous avez des remarques par rapport à la syntaxe, elles sont les bienvenues :
$dir = "./uploads/";
$depth = 0;
function iterate($dir, $depth) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
if ($handle = opendir($dir)) {
$arrayfile = array();
$arraydir = array();
while ($file = readdir($handle)) {
if ($file != '.' && $file !='..') {
$fullpath = $dir.'/'.$file;
if(is_dir($fullpath))
$arraydir[] = $file;
else
$arrayfile[] = $file;
}
}
if($arrayfile || $arraydir) {
echo '<ul class="file_list'.$depth.'">';
$depth=$depth+1;
if($arrayfile){
sort($arrayfile);
foreach ($arrayfile as $value) {
echo '<li class="file'.$depth.'"><a href="'.$dir.'/'.$value.'" target="_blank">'.$value.'</a></li>';
}
}
if($arraydir){
sort($arraydir);
foreach ($arraydir as $value) {
echo '<li class="directory'.$depth.'">'.$value.'</li>';
iterate($dir.'/'.$value, $depth);
}
}
}
echo '</ul>';
$depth=$depth-1;
}
}
}
}
iterate($dir, $depth);
Je vous le mets, au cas où. Si vous avez des remarques par rapport à la syntaxe, elles sont les bienvenues :
$dir = "./uploads/";
$depth = 0;
function iterate($dir, $depth) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
if ($handle = opendir($dir)) {
$arrayfile = array();
$arraydir = array();
while ($file = readdir($handle)) {
if ($file != '.' && $file !='..') {
$fullpath = $dir.'/'.$file;
if(is_dir($fullpath))
$arraydir[] = $file;
else
$arrayfile[] = $file;
}
}
if($arrayfile || $arraydir) {
echo '<ul class="file_list'.$depth.'">';
$depth=$depth+1;
if($arrayfile){
sort($arrayfile);
foreach ($arrayfile as $value) {
echo '<li class="file'.$depth.'"><a href="'.$dir.'/'.$value.'" target="_blank">'.$value.'</a></li>';
}
}
if($arraydir){
sort($arraydir);
foreach ($arraydir as $value) {
echo '<li class="directory'.$depth.'">'.$value.'</li>';
iterate($dir.'/'.$value, $depth);
}
}
}
echo '</ul>';
$depth=$depth-1;
}
}
}
}
iterate($dir, $depth);