【问题标题】:Order in which PHP lists filesPHP 列出文件的顺序
【发布时间】:2013-02-11 21:40:43
【问题描述】:

基本上我有一个 php 脚本,它列出目录中的所有文件并创建指向它们的链接。但是,它似乎以非常任意的方式对文件进行排序(不是按字母顺序/按日期/按大小等...)。 php以什么方式订购文件?有什么办法可以改变吗?

 <?php
    $orig = "/var/www/phplist";
    if ($dir = opendir($orig)) {
        echo "from: $orig";
        echo "<br><br>";

        while ($file = readdir($dir)) {
        $ok = "true";
        $filename = $file;
        if ($file == "."){
        $ok = "false";
        }
        else if ($file == ".."){
        $ok = "false";
        }
        if ($ok == "true"){
          echo "<a href= '/phplist/$file'>$filename</a>";
        echo "<br>";
        }
        }

        closedir($dir);
    }
    ?> 

【问题讨论】:

  • 这不是您问题的答案,但您可以遍历句柄(就像现在一样),然后将所有文件名添加到数组中,然后 sort() 数组。
  • 不相关:使用真正的布尔值而不是"false"。更好的是,使用continue 而不是整个$ok=...

标签: file directory php http


【解决方案1】:

此函数的 documentation 解释了您要查找的内容:

返回目录中下一个条目的名称。条目是 按文件系统存储它们的顺序返回。

根据文件系统,文件可能会保留它们的创建顺序 (FAT);可能按字母顺序排序(NTFS);可能会根据它们在hash table (ext4) 中的位置进行排序;或其他各种方式。

如果您需要特定顺序的文件,请查看scandir,它采用指定排序顺序的参数。

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 2010-11-08
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多