2013-02-11 59 views
1

基本上我有一個php腳本,它列出了目錄中的所有文件並創建了它們的鏈接。然而,它似乎以非常隨意的方式排序文件(不按字母順序/按日期/按大小等)。什麼方式的PHP命令文件?有什麼方法可以改變它嗎?PHP列表文件的順序

<?php 
    $orig = "/var/www/phplist"; 
    if ($dir = opendir($orig)) { 
     echo "from: $orig"; 
     echo "<br><br>"; 

     while ($file = readdir($dir)) { 
     $ok = "true"; 
     $filename = $file; 
     if ($file == "."){ 
     $ok = "false"; 
     } 
     else if ($file == ".."){ 
     $ok = "false"; 
     } 
     if ($ok == "true"){ 
      echo "<a href= '/phplist/$file'>$filename</a>"; 
     echo "<br>"; 
     } 
     } 

     closedir($dir); 
    } 
    ?> 
+0

這不是你的問題的答案,但你可以循環處理(就像你現在做的那樣),但是然後將所有文件名添加到一個數組中,然後'sort()'數組。 – Devator 2013-02-11 21:44:44

+0

無關:使用真正的布爾值而不是「」false「。更好的是,使用'continue'而不是整個'$ ok = ...'的東西。 – grawity 2013-02-11 22:05:03

回答

2

documentation此功能說明你在找什麼:

返回目錄中下一個條目的名稱。條目是 按文件系統存儲的順序返回。

並且根據文件系統,這些文件可能會保留它們的創建順序(FAT)。可能按字母順序排序(NTFS);可能根據其在hash table(ext4)中的位置排序;或各種其他方式。

如果您需要特定順序的文件,請參閱scandir,它帶有一個指定排序順序的參數。