php
  • opendir
  • 2014-09-12 79 views 1 likes 
    1
    <?php 
           if ($handle = opendir('img/albums/1/')) { 
            while (false !== ($file = readdir($handle))) { 
             if ($file != "." && $file != "..") { 
    
              echo "<li><div class='lay-outer pr db oh img_'><img src='img/albums/1/$file' class='open-img-sidebar-spec_' /></div></li>"; 
    
             } 
            } 
            closedir($handle); 
           } 
          ?> 
    

    我有以下代碼。所以,我正在從一定的勝利中獲得照片。所有在勝利中的圖片都是從1到N列出的(例如1.jpg,2.jpg等)。php opendir文件按編號列出

    我需要按順序列出它們,例如從1到90等等。現在,他們隨機上市,我真的想解決它;

    請幫幫忙,謝謝:)

    +1

    據我所知opendir會給你的文件與ls -l相同的順序,所以你可以收集的文件,然後排序在PHP像[這裏](http://stackoverflow.com/questions/884974/sort-和顯示目錄一覽按字母順序使用-執行opendir功能於PHP) – 2014-09-12 14:02:54

    回答

    3

    考慮到他們是編號的文件名,你需要一個數值自然排序字母。所以即使像glob()這樣的另一個函數也無濟於事。

    天真的解決辦法是:

    • 循環遍歷目錄
    • 存儲其中的文件在一個數組
    • 使用中的一個數組排序:sort($arr, SORT_NUMERIC)natsort()
    • 循環陣列並按順序輸出文件
    0

    您可能想要使用

    scandir() 
    

    PHP稱它命令文件alphabeticaly看看:link

    默認情況下,排序順序是按升序排列字母。如果可選sorting_order設置爲SCANDIR_SORT_DESCENDING,那麼排序順序按字母順序降序排列。如果它設置爲SCANDIR_SORT_NONE,那麼結果是未排序的。

    相關問題