Код:
$files = array();
$dir = new DirectoryIterator($directory);
foreach ($dir as $fileinfo) {
$files[$fileinfo->getMTime()] = $fileinfo->getFilename();
}
//krsort will sort in reverse order
krsort($files);
foreach($files as $file){
if ($file == "." or $file == ".." or $file == "thumbs" or $file == "Thumbs.db" or strpos($file, '.') == TRUE){
}else{
if (file_exists($directory.$file.'/zconfirmed.txt')){
echo '<script>console.log("display_subdirectories.php says: '.$directory.$file.'/zconfirmed.txt");</script><li class=""><a class="w3-btn w3-green" href="' .$URL.$file. '" >' .$file. '</a></li>';
}
else{
echo '<script>console.log("display_subdirectories.php says: '.$directory.$file.'");</script><li class="bold"><a class="w3-btn w3-red" href="' .$URL.$file. '" >' .$file. '</a></li>';
}
}
}
Вот моя проблема. Если существует только 1 каталог, в котором находится файл zconfirmed.txt, он не отображается, когда я выполняю итерацию по массиву. Если есть 2 или более, это работает просто отлично. У кого-нибудь есть ответ или даже что-то, что я могу сделать, чтобы лучше устранить этот код?
Я просто пытаюсь перечислить каталоги в порядке их последнего изменения даты / времени.
Спасибо вам большое за помощь!
Вы уже сохраняете имя файла в массиве, не могли бы вы изменить цикл foreach на что-то более простое, например
foreach($files as $file) {
if ($file == "zconfirmed.txt") {
echo '<script>console.log("display_subdirectories.php says: '.$directory.$file.'/zconfirmed.txt");</script><li class=""><a class="w3-btn w3-green" href="' .$URL.$file. '" >' .$file. '</a></li>';
}
}
Кажется, это работает:
echo '<div id="subdirectories"><h3>Subdirectories:</h3><ul>';
$files = scandir($directory);
$dir = array();
foreach ($files as $file){
if (checkDirectory($file) == true){
$filetime = filemtime($directory.$file);
$filename = $file;
$dir[$filetime] = $filename;
}
}
ksort($dir);
$files = $dir;
foreach ($files as $time=>$file){
$contiansPhotos = FALSE;
$path = $directory.$file;
$dirs = glob($path.'/{zconfirmed.txt}', GLOB_BRACE);
foreach($dirs as $dir) {
$contiansPhotos = TRUE;
}
if($contiansPhotos === TRUE){
echo '<li class=""><a class="w3-btn w3-green" href="' .$URL.$file. '" >' .$file. '</a></li>';
}
}//foreach $files as $file;
foreach ($files as $time=>$file){
$contiansPhotos = FALSE;
$path = $directory.$file;
$dirs = glob($path.'/{zconfirmed.txt}', GLOB_BRACE);
foreach($dirs as $dir) {
$contiansPhotos = TRUE;
}
if($contiansPhotos === FALSE){
echo '<li class="bold"><a class="w3-btn w3-red" href="' .$URL.$file. '" >' .$file. '</a></li>';
}
}//foreach $files as $file;
echo '</ul></div>';