我在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\">";
}
}
}
答案 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\">";