Список файлов Php в папке

Обновлено: 21.11.2024

В этой статье мы увидим, как получить все файлы из текущего или указанного каталога с помощью функции scandir() в PHP. Функция scandir() в PHP — это встроенная функция, которая используется для возврата массива файлов и каталогов указанного каталога. Функция scandir() выводит список файлов и каталогов, находящихся внутри указанного пути. Каталог, поведение потока и sorting_order файлов и каталогов передаются в качестве параметра функции scandir(), и она возвращает массив имен файлов в случае успеха или false в случае неудачи.

Синтаксис:

  • каталог: это обязательный параметр, указывающий путь.
  • sorting_order: необязательный параметр, определяющий порядок сортировки. Алфавитно восходящий порядок (0) является порядком сортировки по умолчанию. Можно задать значение SCANDIR_SORT_DESCENDING или 1 для сортировки в алфавитном порядке по убыванию или SCANDIR_SORT_NONE для возврата результата без сортировки.
  • контекст: необязательный параметр, определяющий поведение потока.

Возвращаемое значение: возвращает массив имен файлов в случае успеха или false в случае неудачи.

Ошибки и исключения:

  • Функция scandir() выдает ошибку уровня E_WARNING, если указанный каталог не является каталогом.
  • Выполнение рекурсивного сканирования каталога с большим количеством файлов, скорее всего, либо замедлит работу вашего приложения, либо приведет к значительному увеличению потребления оперативной памяти из-за большого размера сгенерированного массива.

Подход: чтобы получить все файлы из определенного каталога, нам нужно указать полный путь к файлу и сохранить значение пути в переменной как $mydir. Затем используйте < i>scandir(), которая сканирует файлы в текущем или определенном каталоге и возвращает массив файлов и каталогов. По умолчанию он будет выровнен в алфавитном порядке по возрастанию и 0 в качестве порядка сортировки по умолчанию, 1 для сортировки в алфавитном порядке по убыванию и SCANDIR_SORT_NONE для несортированного порядка.

Пример 1. В приведенном ниже примере показана функция scandir(), которая сканирует файлы и возвращает значение в порядке возрастания.

В этой статье мы обсудим, как получить список всех файлов в каталоге в PHP.

В ходе повседневной разработки PHP вам часто приходится иметь дело с файловой системой, например получать список файлов в определенном каталоге. PHP предоставляет несколько различных способов легкого чтения содержимого каталога. Сегодня мы рассмотрим все эти методы вместе с примерами, чтобы понять, как работает каждый из них.

Функции opendir , readdir и Closedir

В этом разделе мы обсудим функции opendir , readdir и closeir , чтобы увидеть, как их можно использовать для получения списка файлов в определенном каталоге.

Функция opendir позволяет вам открыть дескриптор каталога, который вы можете использовать вместе с другими функциями для различных операций с каталогом. Вам нужно передать путь к каталогу в первом аргументе функции opendir. Если путь к каталогу действителен, будет возвращен ресурс дескриптора каталога.

Функция readdir позволяет читать каталог. Вам нужно предоставить действительный дескриптор каталога в первом аргументе функции readdir, и вы можете перебрать все записи и получить список всех файлов в каталоге.

Функция Closedir позволяет закрыть дескриптор каталога, открытый функцией opendir. Хорошей практикой является использование функции closeir после того, как вы закончите свои операции с дескриптором каталога (который изначально был открыт функцией opendir).

Теперь давайте посмотрим на это в действии в следующем примере.

Во-первых, мы использовали функцию opendir для получения дескриптора каталога. Затем мы использовали функцию readdir для перебора дескриптора каталога $handle и сохранения списка файлов в массиве $arrFiles.

Функция сканирования

В этом разделе мы увидим, как можно использовать функцию scandir для получения содержимого каталога.

Функция scandir — это довольно простой способ получить список файлов и каталогов в определенном каталоге. Вам просто нужно передать путь к каталогу, который вы хотите прочитать, в первом аргументе функции scandir.

Давайте рассмотрим следующий пример, чтобы понять, как это работает.

Как видите, это позволяет получить список файлов и каталогов за один вызов! Если вам просто нужно получить список файлов в каталоге, это лучший выбор, чем использование opendir , readdir и Closedir .

Функция глобуса

Функция glob работает аналогично функции scandir, с тем отличием, что она позволяет указать шаблон для фильтрации и сопоставления файлов в каталоге.

Давайте посмотрим, как использовать функцию glob для чтения всего содержимого определенного каталога.

Как видите, мы передали шаблон *, так как хотим прочитать все содержимое. С другой стороны, если вы хотите указать только определенный тип файла, вы можете сделать это, как показано в следующем фрагменте кода.

в этом случае $arrFiles будет содержать только имена файлов .txt.

Функция dir

Параметры, которые мы обсуждали до сих пор, позволяют читать содержимое каталога процедурным способом. В этом разделе мы увидим, как вы можете использовать функцию dir, которая представляет собой объектно-ориентированный механизм для чтения каталога.

Когда вы используете функцию dir и передаете путь к каталогу в первом аргументе, она возвращает экземпляр класса Directory, который впоследствии можно использовать для чтения содержимого каталога.

Давайте рассмотрим следующий пример, чтобы увидеть, как именно это работает.

Во-первых, мы использовали функцию dir для инициализации экземпляра класса Directory в переменной $objDir. Затем мы использовали метод чтения класса Directory для перебора всех записей.

Класс FilesystemIterator

В этом разделе мы увидим, как можно использовать класс FilesystemIterator для чтения содержимого каталога. Преимущество использования класса FilesystemIterator заключается в том, что вы можете расширять методы этого класса, а также предоставляет множество других полезных методов, позволяющих получать различную информацию о файлах.

Давайте рассмотрим следующий пример, чтобы понять, как это работает.

Как видите, использовать класс FilesystemIterator и перебирать записи очень просто. В приведенном выше примере мы использовали метод getFileName класса FilesystemIterator для получения имени файла. Однако класс FilesystemIterator также предоставляет несколько служебных методов, таких как getExtension , getSize , getPathname и т. д.

Вот как вы можете использовать класс FilesystemIterator для получения списка файлов в каталоге.

Заключение

Сегодня мы обсудили различные способы вывода списка всех файлов в каталоге в PHP. Вот таблица для сравнения каждого метода, чтобы помочь вам выбрать, какой из них подходит именно вам.

Добро пожаловать в краткий учебник о том, как составить список файлов и папок в PHP. Хотите получить содержимое папки в PHP?

  1. Используйте scandir() для получения массива файлов и папок – $contents = scandir("FOLDER");
  2. Используйте glob() для выборочного получения файлов и папок.
    • $pictures = glob("FOLDER/*.", GLOB_BRACE);
    • $folders = glob("FOLDER/*", GLOB_ONLYDIR);
  3. Наконец, используйте opendir() для циклического просмотра папки.
    • $fh = opendir("ПАПКА");
    • в то время как (($entry = readdir($fh)) !== false) < echo $entry; >
    • fclose($fh);

Это должно охватывать основы, но читайте другие примеры!

ⓘ Я включил zip-файл со всем исходным кодом в начале этого руководства, поэтому вам не нужно копировать и вставлять все… Или если вы просто хотите сразу погрузиться.

БЫСТРЫЕ СЛАЙДЫ

СОДЕРЖАНИЕ

СКАЧАТЬ И ПРИМЕЧАНИЯ

Во-первых, вот ссылка для загрузки примера кода, как и было обещано.

БЫСТРЫЕ ЗАМЕЧАНИЯ

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

СКАЧАТЬ ПРИМЕР КОДА

Нажмите здесь, чтобы загрузить весь исходный код примера. Я выпустил его под лицензией MIT, так что не стесняйтесь строить на его основе или использовать в своем собственном проекте.

СПИСОК ФАЙЛОВ И ПАПОК

Хорошо, а теперь давайте рассмотрим различные примеры того, как отображать файлы и папки в PHP.

СПОСОБ 1) СКАНДИРОВ

Это очень просто, просто используйте scandir("FOLDER"), чтобы получить массив всех файлов и папок. Но обратите внимание: мы не можем «настроить» эту функцию так, чтобы она получала «только определенные типы файлов», и это потенциально плохо для папок с большим количеством файлов.

МЕТОД 2) GLOB

Чтобы получить «настраиваемый список файлов», используйте вместо этого функцию glob(). Мы можем ограничиться любым типом файлов, получать только папки и даже выполнять очень специфический поиск.

СПОСОБ 3) ОТКРЫТЫЙ ДИАПАЗОН

У вас есть огромная папка с тысячами файлов? Вот как мы должны поступать с этим – читайте записи одну за другой.

ДОПОЛНИТЕЛЬНАЯ РЕКУРСИЯ ПОЛУЧИТЬ ПОДПАПКИ

Наконец, получение вложенных папок довольно сложно. Нам нужна рекурсивная функция, которая будет автоматически детализировать вложенные папки.

ПОЛЕЗНЫЕ ИНФОРМАЦИИ И ССЫЛКИ

Это все, что касается руководства, и вот небольшой раздел с дополнительными материалами и ссылками, которые могут быть вам полезны.

ССЫЛКИ И ССЫЛКИ

ОБУЧАЮЩЕЕ ВИДЕО

ИНФОГРАФИЧЕСКАЯ Шпаргалка

КОНЕЦ

Спасибо, что прочитали, и мы подошли к концу.Я надеюсь, что это помогло вам лучше понять, и если вы хотите поделиться чем-либо с этим руководством, пожалуйста, не стесняйтесь комментировать ниже. Удачи и удачного кодирования!

Оставить комментарий Отменить ответ

Поиск

сообщить об этом объявлении

Прорыв в Javascript

Сфотографировать с помощью веб-камеры? Голосовые команды? Видеозвонки? Да, это возможно с помощью Javascript — ознакомьтесь с прорывом Javascript!

сообщить об этом объявлении

Список файлов и каталогов внутри каталога изображений:

Определение и использование

Функция scandir() возвращает массив файлов и каталогов указанного каталога.

Синтаксис

Значения параметров

Параметр Описание
каталог Обязательный. Указывает каталог для сканирования
порядок Необязательно. Задает порядок сортировки. Порядок сортировки по умолчанию — в алфавитном порядке по возрастанию (0). Установите SCANDIR_SORT_DESCENDING или 1, чтобы отсортировать в алфавитном порядке по убыванию, или SCANDIR_SORT_NONE, чтобы вернуть результат без сортировки
контекст Необязательно. Определяет контекст дескриптора каталога. Контекст — это набор параметров, которые могут изменить поведение потока

Технические детали

Возвращаемое значение: массив файлов и каталогов в случае успеха, FALSE в случае неудачи. Выдает E_WARNING, если каталог не является каталогом
Версия PHP: 5.0+
PHP Список изменений: PHP 5.4: добавлены константы order
❮ Справочник по каталогу PHP

Мы только что запустили
видео W3Schools

ПИКЕР ЦВЕТА

Получите сертификат
пройдя курс
сегодня!

КОД ИГРА

Сообщить об ошибке

Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь отправить нам электронное письмо:

Спасибо за помощь!

Ваше сообщение было отправлено в W3Schools.

Лучшие учебные пособия
Лучшие ссылки
Лучшие примеры
Веб-курсы

W3Schools оптимизирована для обучения и повышения квалификации. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, политику конфиденциальности и файлы cookie.

Читайте также: