当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《PHPreaddir()不按字母顺序返回文件》经验,为你挑选了2个好方法。

我正在阅读一个包含一些图片的目录,使用readdir()的非常简单的实现,如下所示:

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

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

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

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

我知道我可以构建一个数组并对其进行排序,但我想知道我是否遗漏了我正在做的事情.



1> ZombieSheep..:

按字母顺序排列::我认为您误读了您引用的片段...

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

'ls'将以(通常)字母顺序显示文件这一事实并不意味着它们是如何存储在文件系统中的.我担心,PHP的行为就像规范一样.

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


/我拍前额scandir()是我正在寻找的.谢谢!

2> alex..:

您可以将所有文件名复制到一个数组中然后使用


推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有