使用PHP对文件夹进行排序

时间:2014-04-17 21:43:42

标签: php sorting

我在php中有点初学者。我编写了一个脚本,列出文件夹并在其中显示文件。但我无法弄清楚如何按字母顺序对它们进行排序。有没有人有解决这个问题的建议? (我希望我不必更改很多代码,因为我在很多地方使用过这段代码......)

$path ="Prosedyrer";
if ($handle = opendir($path)) 
{
    $blacklist = array('.', '..', 'somedir', 'somefile.php');
    while (false !== ($file = readdir($handle)))
    {
        if (!in_array($file, $blacklist))
        {
            echo "<li>$file</a>\n <ul class=\"sub\">";
        }
    }
}

2 个答案:

答案 0 :(得分:0)

这是来自PHP文档:

array scandir(string $ directory [,int $ sorting_order = SCANDIR_SORT_ASCENDING [,resource $ context]])

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

答案 1 :(得分:0)

使用glob(),它更方便,并立即为您提供阵列。

$files = glob('SomePath/*');
$blacklist = array('.', '..', 'somedir', 'index.php');
$files = array_diff($files, $blacklist); // get rid of the blacklisted files
sort($files); // sort them a-z!
foreach ($files as $file) echo "<li>$file</a>\n <ul class=\"sub\">";