我正在尝试将第一个文件放在按名称 asc 排序的目录中。这是我使用的代码(php):
$dir = "fichiers/123/files_backup";
$premfic = array_slice(array_filter(scandir($dir), 'is_file'), 0, 5);
print_r($premfic);
但是数组是空的......该目录包含 18 个文件,仅 scandir 可以看到它们。任何想法?谢谢
我正在尝试将第一个文件放在按名称 asc 排序的目录中。这是我使用的代码(php):
$dir = "fichiers/123/files_backup";
$premfic = array_slice(array_filter(scandir($dir), 'is_file'), 0, 5);
print_r($premfic);
但是数组是空的......该目录包含 18 个文件,仅 scandir 可以看到它们。任何想法?谢谢
is_file
不起作用,因为您当前不在"fichiers/123/files_backup"
. 以下应该都有效:
chdir($dir);
$premfic = array_slice(array_filter(scandir('.'), 'is_file'), 0, 5);
// You may want to chdir back to your previous directory
// You can use getcwd() before your chdir() to dynamically determine it
或者:
$premfic = array_slice(array_filter(scandir($dir), function($filename) use ($dir){
return is_file($dir . '/' . $filename);
}), 0, 5);
或者正如 OrangePill 指出的那样(因为 glob 返回相对路径,而不仅仅是文件名):
$premfic = array_slice(array_filter(glob($dir . '/*'), 'is_file'), 0, 5);