Функция list_files()
возвращает массив с полными путями к файлам, расположенным в указанной папке и её поддиректориях. Уровень вложенности папок можно настроить с помощью параметра $levels
. При необходимости можно исключить определенные файлы или папки из списка через параметр $exclusions
. Если требуется, можно также включить в результат скрытые файлы, такие как .git
или .htaccess
, используя параметр $include_hidden
.
list_files( string $folder = ”, int $levels = 100, string[] $exclusions = array(), bool $include_hidden = false ): string[]|false
Параметры
$folder
(строка, необязательный) — Полный путь к папке, файлы из которой нужно получить.- По умолчанию:
''
(пустая строка).
- По умолчанию:
$levels
(число, необязательный) — Уровень вложенности директорий, который нужно просматривать. Значение по умолчанию — 100, что является максимальным значением для цикла в PHP.- По умолчанию:
100
.
- По умолчанию:
$exclusions
(массив строк, необязательный) — Массив папок и файлов, которые нужно исключить из результата.- По умолчанию:
array()
.
- По умолчанию:
$include_hidden
(логическое значение, необязательный) — Включать ли скрытые файлы, начинающиеся с точки (.
), например.htaccess
или.git
.- По умолчанию:
false
.
- По умолчанию:
Возвращаемое значение
Возвращает массив путей к файлам при успешном выполнении. Если не удалось получить список файлов, возвращает false
.
Важные замечания
- Функция возвращает полный путь к файлам, а не их имена. Поэтому для обработки путей необходимо использовать такие функции, как
basename()
для получения имени файла. - Работа с вложенностью. Параметр
$levels
позволяет ограничить уровень вложенности директорий для поиска файлов. Например, если задать1
, то будут получены только файлы из указанной директории без рекурсии по поддиректориям. - Исключение файлов. Параметр
$exclusions
позволяет указать массив файлов или папок, которые будут пропущены при сборе файлов.
Пример 1: Получение всех файлов в каталоге WordPress
Этот пример демонстрирует, как получить список всех файлов в корневой директории WordPress с полной рекурсией.
require_once ABSPATH . 'wp-admin/includes/file.php';
// Получаем список всех файлов WordPress
$all_files = list_files( ABSPATH );
print_r( $all_files );
/* Вывод:
Array
(
[0] => /var/www/html/wp-settings.php
[1] => /var/www/html/wp-config-sample.php
[2] => /var/www/html/wp-content/themes/twentytwenty/style.css
...
)
*/
Пример 2: Получение файлов с ограничением на вложенность директорий
В этом примере мы ограничим уровень вложенности до одного, чтобы получить файлы только из основной директории и не заходить в поддиректории.
require_once ABSPATH . 'wp-admin/includes/file.php';
// Получаем файлы только из указанной директории, без рекурсии в поддиректории
$files_level_1 = list_files( ABSPATH, 1 );
print_r( $files_level_1 );
/* Вывод:
Array
(
[0] => /var/www/html/index.php
[1] => /var/www/html/wp-config.php
[2] => /var/www/html/wp-admin/
[3] => /var/www/html/wp-content/
[4] => /var/www/html/wp-includes/
)
*/
Пример 3: Исключение определенных файлов и папок
Здесь мы покажем, как исключить из списка определенные файлы и директории с помощью параметра $exclusions
.
require_once ABSPATH . 'wp-admin/includes/file.php';
// Исключаем из списка директорию wp-admin и файл wp-config.php
$excluded_files = list_files( ABSPATH, 100, array( 'wp-admin', 'wp-config.php' ) );
print_r( $excluded_files );
/* Вывод:
Array
(
[0] => /var/www/html/index.php
[1] => /var/www/html/wp-content/themes/twentytwenty/style.css
[2] => /var/www/html/wp-includes/js/jquery.js
...
)
*/
Пример 4: Включение скрытых файлов
Чтобы включить скрытые файлы (например, .htaccess
), необходимо установить параметр $include_hidden
в true
.
require_once ABSPATH . 'wp-admin/includes/file.php';
// Включаем скрытые файлы в список
$files_with_hidden = list_files( ABSPATH, 100, array(), true );
print_r( $files_with_hidden );
/* Вывод может включать:
Array
(
[0] => /var/www/html/.htaccess
[1] => /var/www/html/index.php
[2] => /var/www/html/wp-content/themes/twentytwenty/style.css
...
)
*/
Заключение
Функция list_files()
— это мощный инструмент для получения списка файлов в заданной директории с возможностью настройки глубины вложенности и исключений. Она полезна для автоматизированного поиска файлов в проектах WordPress и позволяет гибко управлять результатами, включая скрытые файлы или исключая определенные директории.