我正在尝试将第一个文件放在按名称asc排序的目录中。这是我使用的代码(php):
$dir = "fichiers/123/files_backup";
$premfic = array_slice(array_filter(scandir($dir), 'is_file'), 0, 5);
print_r($premfic);
但是数组是空的...该目录包含18个文件,scandir单独看到它们。任何的想法? 感谢
答案 0 :(得分: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);