Php 按字母顺序列出文件(包括文件和文件夹)

Php 按字母顺序列出文件(包括文件和文件夹),php,file,filesystems,Php,File,Filesystems,如何使用PHP按字母顺序列出文件夹中的所有文件和文件夹 我对文件a.txt、b.txt、c和d.txt使用了以下内容,其中c是一个文件夹。问题是c显示在最后,而不是b.txt之后,因为它是一个文件夹 我还希望能够检查每个文件是一个文件还是一个文件夹 <?php $dir = opendir ("folders"); while (false !== ($file = readdir($dir))) { echo "$file <br />";

如何使用PHP按字母顺序列出文件夹中的所有文件和文件夹

我对文件
a.txt
b.txt
c
d.txt
使用了以下内容,其中
c
是一个文件夹。问题是
c
显示在最后,而不是
b.txt
之后,因为它是一个文件夹

我还希望能够检查每个文件是一个文件还是一个文件夹

<?php
    $dir = opendir ("folders");
    while (false !== ($file = readdir($dir))) {
        echo "$file <br />";
    }
?>


只需先将名称读入数组,而不是立即打印即可。然后对数组进行排序,然后进行输出

<?php
$dir = opendir ("folders");
while (false !== ($file = readdir($dir))) {
    $names[] = $file;
}
sort($names, SORT_STRING);
foreach ($names as $name) {
    echo "$name <br />";
}
?>
<?php
    $files = array();
    $dir = opendir ("folders");
    while (false !== ($file = readdir($dir))) {
        $files[] = $file;
    }
    sort($files);

    foreach ($files as $f)
        echo "$f <br />";
?>


只需先将名称读入数组,而不是立即打印即可。然后对数组进行排序,然后进行输出

<?php
$dir = opendir ("folders");
while (false !== ($file = readdir($dir))) {
    $names[] = $file;
}
sort($names, SORT_STRING);
foreach ($names as $name) {
    echo "$name <br />";
}
?>
<?php
    $files = array();
    $dir = opendir ("folders");
    while (false !== ($file = readdir($dir))) {
        $files[] = $file;
    }
    sort($files);

    foreach ($files as $f)
        echo "$f <br />";
?>

glob()的强大功能将帮助您。只要做:

$dir = glob("folders/*");

我建议使用以下代码(不需要opendir等)

关于问题的第二部分:您可以使用php“is_file”和“is_dir”函数

$files=scandir('folders');
排序($文件);
foreach($files作为$file){
回显$file.“
”;
}
如何检查哪些是文件夹?使用
is\u文件($filename)
is\u目录($filename)
functions.glob有几个参数,因此,您可以使用它两次,第一次用于文件夹,第二次用于文件。或者使用上面提到的是_file()和_dir()。获取更多信息(PHP用户有非常有用的url快捷方式)