php opendir文件按编号列出

时间:2014-09-12 13:56:55

标签: php opendir

<?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和on)。

我需要按顺序列出它们,例如从1到90等等。现在,他们随机上市,我真的想解决它;

请帮助,谢谢:)

2 个答案:

答案 0 :(得分:3)

考虑到它们是编号的文件名,您需要数字自然排序字母。所以即使像glob()这样的另一个函数也无济于事。

天真的解决方案是:

  • 循环遍历目录中的文件
  • 将它们存储在数组中
  • 使用以下其中一项对数组进行排序:sort($arr, SORT_NUMERIC)natsort()
  • 循环遍历数组并按顺序输出文件

答案 1 :(得分:0)

您可能想要使用

scandir()

php说它按字母顺序排列文件,看看:link

默认情况下,排序顺序按字母顺序升序排列。如果可选的sorting_order设置为SCANDIR_SORT_DESCENDING,则排序顺序按字母顺序降序排列。如果设置为SCANDIR_SORT_NONE,则结果未排序。