Чтобы ответить на ваш вопрос, вам нужно сначала собрать все файлы, а затем отсортировать их сразу. Итак, ваш код будет выглядеть так:
<?php
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
sort($files);
Но лучший вариант - просто использовать scandir () , который возвращает вам список файлов (включая папки) в вашем каталоге, а затем вы можете отсортировать их соответствующим образом.
Я использовал usort () , который сортирует файлы в алфавитном порядке, игнорируя прописные или строчные буквы, сохраняя при этом исходное представление имени файла.
Код:
<?php
$files = array_diff(scandir(YOUR_DIRECTORY_PATH_HERE),array(".",".."));
usort($files,function($file1,$file2){
return strcmp(strtolower($file1),strtolower($file2));
});
print_r($files);
- Я использовал array_diff () , чтобы удалить
.
и ..
, которые включены в результат scandir().