Как вывести файлы из папки в алфавитном порядке на php
Есть папка с файлами 1.txt, 2.txt, 3.txt
Нужно просто вывести все названия файлов из папки, сейчас выводит так
...10.txt11.txt12.txt13.txt14.txt15.txt16.txt17.txt18.txt19.txt20.txt21.txt22.txt23.txt3.txt4.txt5.txt6.txt7.txt8.txt9.txt
То есть откуда то берется точка и потом ещё две, и порядок сортировки не понятен, почему не по алфавиту? Сам код простой
Код (Text):
$files = scandir(__DIR__.'/notes'); //Сортировка по названию (А, Б, В...)
sort($files); //Файловая кнопка (Если тебе нужны названия просто пиши 'echo $file')
foreach($files as $file) {
echo $file;
}
Любая директория, кроме корневой, содержит служебные директории с именами '.' и '..', а scandir выдаёт тебе все имена файлов и директорий. В цикле надо фильтровать, что выводим, а что пропускаем.
И нет, у тебя всё прекрасно отсортировалось по алфавиту: строка '3.txt' больше строки '23.txt'.
точка и две точки это отсылки к самой директории, в которой находятся файлы и к родительской директории. Поэтому даже в пустой папке будут эти две ссылки обязательно.
Сортировка по именам идет в алфавитном, а не числовом порядке, последовательно, начиная с 1 символа. Число 3 стоит в ряду символов после числа 2, поэтому вне зависимости, какие далее идут символы в наименовании файла, тот в котором будет стоять 3 на аналогичной позиции будет всегда выводиться после файла у которого стоит 2:
txt2, txt21, txt3 ...
а это уже в бан за спам, дятел...