当前位置: 首页 > 面试题库 >

PHP readdir()不按字母顺序返回文件

公羊俭
2023-03-14
问题内容

我正在阅读包含一些图片的目录,并且使用readdir()的简单实现如下:

if ($handle = opendir($path)) {
    while (false !== ($szFilename = readdir($handle))) {
    if ($szFilename[0] !== '.') {
        if (is_file($path.$szFilename)) {
                // do stuff
            }
        }
     }
 }

我遇到的问题是,文件没有按字母顺序作为readdir()状态的文档被读取:

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

另一个奇怪的事情是,在本地测试服务器上,相同的代码效果很好。在这两种情况下,它都在使用LAMP堆栈的服务器上运行。

我知道我可以构建一个数组并对其进行排序,但是我想知道自己在做的事情中是否缺少某些东西。


问题答案:

字母顺序::我认为您误读了引述的代码段…

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

“ ls”将以(通常)字母顺序显示文件的事实并不意味着这就是它们在文件系统上的存储方式。恐怕PHP的行为符合规范。

如果必须按字母顺序排序,则可能要考虑使用scandir作为工作的基础。:)



 类似资料:
  • 问题内容: 我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按Name(varchar)ASC排序记录, 但编号始终是第一位的 这是我的问题的一些示例( 注意。mysql首先用0-9排序记录 ) 我想要的是字母顺序,然后是数字 所需的输出 问题答案: 使用以下子句:

  • 问题内容: 我是Java的新手,正在尝试按字母顺序排列术语的arrayList。(一个术语定义为一个字符和一个整数)(例如 我的代码如下: 为什么这不起作用?以及我该如何完成呢?我的arrayList称为术语,填充有Term类型 问题答案: 您在这行代码中遇到的问题。您的课程不是So 的类型,这两个对象将基于哪个属性或条件方法? 您必须使您的类为Comparable类型。和,根据您的需要覆盖该方法

  • 问题内容: 我有如下代码: 效果很好,但似乎是以相反的字母顺序列出文件。有没有一种快速的方法可以告诉您按字母顺序列出文件? 问题答案: 带有或不带有过滤器的方法不能保证任何顺序。 但是,它确实返回一个数组,您可以使用对其进行排序。 这是可行的,因为是一个可比较的类,默认情况下按字典顺序对路径名进行排序。如果要对它们进行不同的排序,则可以定义自己的比较器。 如果您更喜欢使用流: 下面是一种更现代的方

  • 已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {“bed”, “dog”, “dear”, “eye”},按照字母顺序排序并打印,结果应为:dear, dog, eye, bed。 说明 本问题在网上比较常见,但这里尝试用另外一个思路,并且用python来写,与众多用c++的有所不同,且似乎短小了不少。自己感觉比网上参考到的更

  • 问题内容: 我想按字母顺序比较上述两个字符串(在本例中为“ Project”,然后是“ Sunject”,因为“ P”在“ S”之前)。有谁知道如何用Java做到这一点? 问题答案: 可能需要或可能不需要。 如果需要本地化的字符串排序,请查看此链接。

  • 我必须创建一个方法,根据电子邮件按字母顺序排序对象的ArrayList,然后打印排序后的数组。我对它排序有困难的部分。我已经研究过它,并尝试使用,但这对我不起作用。我需要一种叫做比较器的东西,但不知道它是如何工作的。我必须使用这些,或者像气泡排序或插入排序之类的东西可以用于这种事情吗? 这是我目前掌握的代码: