[英]List all the files and folders in a Directory with PHP recursive function
[英]List all files and folders in order using PHP
我的代码:
<?php
$dirs = array_filter(glob('*'), 'is_dir');
$files = array_filter(glob('*'), 'is_file');
$all = $dirs + $files;
foreach ($all as $value){
echo '<li><a href="'.$value.'">'.$value.'</a></li>';
}
?>
这将返回所有文件和文件夹,但以随机顺序:
Array
(
[2] => New folder
[6] => dir
[7] => dir1
[8] => dir2
[9] => dir3
[0] => A_test.txt
[1] => Index.php
[3] => app.exe
[4] => b_test
[5] => delete.php
[10] => hello.png
[11] => z_test.txt
)
sort()
不起作用。 我想按默认顺序对它们进行排序。
就像提到的Half Crazed一样,在回显它们之前,您只是缺少文件的sort()。
<?php
$dirs = array_filter(glob('*'), 'is_dir');
$files = array_filter(glob('*'), 'is_file');
$all = $dirs + $files;
sort($all); //sort them
foreach ($all as $value){
echo '<li><a href="'.$value.'">'.$value.'</a></li>';
}
?>
它们并不是随机排列的。 glob
的默认行为是对它返回的名称进行排序。 如果您不希望对它们进行排序,则实际上必须使用GLOB_NOSORT
标志来覆盖它。 它们看起来是随机的,因为排序区分大小写,并且大写名称出现在顶部。 如果natcasesort
区分大小写地对其进行排序,请在组合它们之前在两个数组上使用natcasesort
。
$dirs = array_filter(glob('*'), 'is_dir');
natcasesort($dirs);
$files = array_filter(glob('*'), 'is_file');
natcasesort($files);
$all = $dirs + $files;
foreach ($all as $value){
echo '<li><a href="'.$value.'">'.$value.'</a></li>';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.