функция
since 2.6.0
list_files()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
list_files( string $folder = '', int $levels = 100, string[] $exclusions = array(), bool $include_hidden = false ): string[]|false
Описание
Глубину рекурсии можно задать параметром $levels.
Оригинал (английский)
The depth of the recursiveness can be controlled by the $levels param.
Параметры
$folder
string
необязательный
= ''
Полный путь к папке.
$levels
int
необязательный
= 100
Число уровней вложенности папок для обхода. По умолчанию 100 (ограничение цикла PHP).
$exclusions
string[]
необязательный
= array()
Список папок и файлов, которые нужно пропустить.
$include_hidden
bool
необязательный
= false
Включать ли сведения о скрытых файлах (с префиксом «.»).
Возвращаемое значение
string[]|false
Исходный код
wp-admin/includes/file.php:139
function list_files( $folder = '', $levels = 100, $exclusions = array(), $include_hidden = false ) {
if ( empty( $folder ) ) {
return false;
}
$folder = trailingslashit( $folder );
if ( ! $levels ) {
return false;
}
$files = array();
$dir = @opendir( $folder );
if ( $dir ) {
while ( ( $file = readdir( $dir ) ) !== false ) {
// Skip current and parent folder links.
if ( in_array( $file, array( '.', '..' ), true ) ) {
continue;
}
// Skip hidden and excluded files.
if ( ( ! $include_hidden && '.' === $file[0] ) || in_array( $file, $exclusions, true ) ) {
continue;
}
if ( is_dir( $folder . $file ) ) {
$files2 = list_files( $folder . $file, $levels - 1, array(), $include_hidden );
if ( $files2 ) {
$files = array_merge( $files, $files2 );
} else {
$files[] = $folder . $file . '/';
}
} else {
$files[] = $folder . $file;
}
}
closedir( $dir );
}
return $files;
}
История изменений
| Версия | Описание |
|---|---|
| 6.3.0 | Added the $include_hidden parameter. |
| 4.9.0 | Added the $exclusions parameter. |
| 2.6.0 | Introduced. |

