@AlexStolman

Почему DirectoryIterator не по порядку видит фаилы?

foreach (new DirectoryIterator('folder') as $fileInfo) {
if($fileInfo->isDot()) continue;

echo '
'.$fileInfo->getFilename();
}

Этот код показывает имена всех фаилов из папки folder.
у меня там
1.txt 2.txt 3.txt итд
На сервере на маке он нормально показывает их по порядку 1.txt 2.txt 3.txt
А на сервере на Ubuntu он показывает их в разноброс 3.txt 1.txt 2.txt
Почему и как это исправить?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
$files=array[];

foreach (new DirectoryIterator('folder') as $fileInfo) {
if($fileInfo->isDot()) continue;
$files[]=$fileInfo->getFilename();
}
asort($files);
print_r($files);
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому, что показывает их в порядке расположения в структуре каталога на диске. Если файлы не удалялись, то этот порядок совпадает с порядком создания файлов. Если удалить файл, то следующий созданный в этом каталоге займёт его место в структуре.
На убунту, скорее всего, эти файлы создавались, а на мак копировались уже по порядку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы