首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP readdir()不按字母顺序返回文件

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

Stack Overflow用户
提问于 2009-02-12 14:33:31
回答 5查看 38K关注 0票数 19

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

代码语言:javascript
复制
if ($handle = opendir($path)) {
    while (false !== ($szFilename = readdir($handle))) {
    if ($szFilename[0] !== '.') {
        if (is_file($path.$szFilename)) {
                // do stuff
            }
        }
     }
 }

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

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

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-12 14:38:30

按字母顺序::我想你读错了你引用的片段...

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

'ls‘会(通常)按字母顺序显示文件,但这并不意味着它们在文件系统中就是这样存储的。我担心PHP是按照规范来运行的。

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

票数 32
EN

Stack Overflow用户

发布于 2009-02-13 05:45:08

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

代码语言:javascript
复制
<?php
sort($filesArray);
?>
票数 14
EN

Stack Overflow用户

发布于 2009-02-12 14:36:56

我想这里的文档已经很清楚了。

它们在文件系统中存储的

顺序

与字母顺序不同

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/541510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档