0

我正在尝试将第一个文件放在按名称 asc 排序的目录中。这是我使用的代码(php):

 $dir = "fichiers/123/files_backup";
$premfic = array_slice(array_filter(scandir($dir), 'is_file'), 0, 5);
print_r($premfic);

但是数组是空的......该目录包含 18 个文件,仅 scandir 可以看到它们。任何想法?谢谢

4

1 回答 1

5

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);
于 2013-08-23T16:56:30.430 回答