如何按名称对 php 目录列表进行排序?

How can I sort this php directory list by name?

所以,只是希望我的 webdrive 文件夹是“可浏览的”,所以我找到了这个脚本来为我做这件事。 问题是,列表没有按名称排序 需要如何修改代码才能按文件名排序?

<?php
$dir_open = opendir('.');

while(false !== ($filename = readdir($dir_open))){
    if($filename != "." && $filename != ".."){
        $link = "<a href='./$filename'> $filename </a><br />";
        echo $link;
    }
}

closedir($dir_open);
?>

您可以将文件名存储在数组中,然后使用 sort()

对它们进行排序
$files = [];
$dir_open = opendir('.');
while(false !== ($filename = readdir($dir_open))){
    if($filename != "." && $filename != ".."){
        $files[] = $filename; // store filename
    }
}
closedir($dir_open);

// Then, sort and display
sort($files);

foreach ($files as $filename) {
    $link = "<a href='./$filename'> $filename </a><br />";
    echo $link;
}