【发布时间】:2014-07-10 09:41:35
【问题描述】:
用于 glob 的 documentation 没有提及它返回路径名数组的顺序(如果有),但是,它确实提到了一个允许您禁用排序的标志。
GLOB_NOSORT - 返回出现在目录中的文件(无 排序)
不使用GLOB_NOSORT标志时,数组如何按glob排序?
【问题讨论】:
标签: php
用于 glob 的 documentation 没有提及它返回路径名数组的顺序(如果有),但是,它确实提到了一个允许您禁用排序的标志。
GLOB_NOSORT - 返回出现在目录中的文件(无 排序)
不使用GLOB_NOSORT标志时,数组如何按glob排序?
【问题讨论】:
标签: php
默认情况下,列表按降序排列ASCIIbethical,即A、B、C...Z、a、b、c...z、0,1...9时间>。它是 libc glob() 的副本
来源http://www.delorie.com/djgpp/doc/libc/libc_426.html
还有 glob 的 PHP 源 C 代码:https://github.com/php/php-src/blob/89a9acea1f9d821a9805b3857bf4febbba08690d/win32/glob.c#L521
【讨论】:
qrsort 调用中可以明显看出这一点。它使用基于strcmp 的比较器函数,它只是比较字符代码。操作系统之间在特定于区域设置的字符的顺序上可能存在细微差别(取决于操作系统使用的编码),但标准英语子集按 ASCII 顺序排序(例如,大写字母在小写字母之前)。跨度>
值得注意的是,根据我的经验,我得到的文件是这样排序的
Alpha.txt
Beta.txt
Zebra.txt
alpha.txt
beta.txt
zebra.txt
这是在linux上
最好有
Alpha.txt
alpha.txt
Beta.txt
beta.txt
Zebra.txt
zebra.txt
【讨论】: