2016-05-10 4 views
1

Код:Список каталогов по дате, и он удаляет один элемент из массива ... Я что-то упустил?

$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 или более, он работает нормально. У кого-нибудь есть ответ или даже что-то, что я могу сделать, чтобы лучше устранить этот код?

Я просто пытаюсь перечислить каталоги в порядке их последней измененной даты/времени.

Спасибо, ребята, за помощь!

+0

Попробуйте добавить некоторые 'echo' s или 'var_dump() в ключевых точках вашего скрипта, чтобы выяснить, что содержит переменная (ы) и работать с вашей логикой, почему она работает так, как она есть. – Mike

+0

Спасибо, Майк. Я буду сообщать на консоль каждый шаг по пути, и если это не поможет, я отправлю ответ. Иногда я получаю удовольствие от головокружения и забываю об основах - например, посмотрим, что в массиве. Ty. – Jrhd437

+0

вместо использования

0

Это, кажется, работает:

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>'; 
Смежные вопросы