[英]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.