簡體   English   中英

使用PHP依次列出所有文件和文件夾

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM